{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Discrete Cosine Transform\n",
    "This is a little jupyter notebook that does a discrete cosine transform (DCT). DCT is a thing like the Fourier transform that's used in JPGs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "# Imports and the like\n",
    "%pylab inline\n",
    "\n",
    "import numpy as np\n",
    "from PIL import Image\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Graph settings. No more jet plz\n",
    "mpl.rcParams['image.cmap'] = 'gray'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.        ,  1.        ,  1.        ,  1.        ,  1.        ,\n",
       "         1.        ,  1.        ,  1.        ],\n",
       "       [ 1.        ,  1.        ,  0.92156863,  0.08235294,  0.72941176,\n",
       "         1.        ,  1.        ,  1.        ],\n",
       "       [ 1.        ,  1.        ,  0.54901961,  0.29019608,  0.2627451 ,\n",
       "         1.        ,  1.        ,  1.        ],\n",
       "       [ 1.        ,  0.99607843,  0.15686275,  0.8745098 ,  0.16862745,\n",
       "         0.8627451 ,  1.        ,  1.        ],\n",
       "       [ 1.        ,  0.75294118,  0.00392157,  0.09019608,  0.02745098,\n",
       "         0.4745098 ,  1.        ,  1.        ],\n",
       "       [ 1.        ,  0.35686275,  0.6       ,  1.        ,  0.88235294,\n",
       "         0.09803922,  0.98039216,  1.        ],\n",
       "       [ 1.        ,  0.2627451 ,  0.90196078,  1.        ,  1.        ,\n",
       "         0.29411765,  0.8745098 ,  1.        ],\n",
       "       [ 1.        ,  1.        ,  1.        ,  1.        ,  1.        ,\n",
       "         1.        ,  1.        ,  1.        ]])"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nBws2LlNa3PNuAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11694c438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Load up the image, and normalise it\n",
    "img_path = '../assets/a.png'\n",
    "# Open image. We also convert to grayscale to make it simpler to deal with\n",
    "img = np.asarray(Image.open(img_path).convert('L'))\n",
    "# Normalise to 0-1\n",
    "img = img / 255\n",
    "\n",
    "plt.imshow(img)\n",
    "img"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saved to test.png\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x121932668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# And a little function to save images\n",
    "\n",
    "# Shout out to\n",
    "# stackoverflow.com/questions/31544130/saving-an-imshow-like-image-while-preserving-resolution\n",
    "def save_image(data, name, vmin=0, vmax=1):\n",
    "    cmap = plt.cm.gray\n",
    "    norm = plt.Normalize(vmin=vmin, vmax=vmax)\n",
    "    \n",
    "    img = cmap(norm(data))\n",
    "    plt.imsave(name, img)\n",
    "    print('saved to {}'.format(name))\n",
    "\n",
    "# quick test\n",
    "arr = np.linspace(-1, 1, 8 * 8).reshape((8, 8))\n",
    "plt.imshow(arr)\n",
    "save_image(arr, name=\"test.png\", vmin=-1, vmax=1)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Displaying the frequency things\n",
    "Let's start with seeing if we can render each of the 'frequencies' that the DCT gives us."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "freq = np.zeros((8, 8))\n",
    "freq[0,0] = 1\n",
    "freq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x117f33c50>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11726e748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.fftpack import idct\n",
    "\n",
    "freq_img = idct(idct(freq, axis=0), axis=1)\n",
    "plt.imshow(freq_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x11799e9e8>"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nnz+P8+fPh+Va4L4PzpIcAN74RvUVYkNDQzNqd3cXu7u7B/s/+MElL9wFAKTW0aWUq7H/MO2DczRu\naDOVub/chGsO5ZR9ndBZANct3JahNavnvjxzzQH4etT/ipChoaGN1oB7aGhLNeAeOtC4594uDbiH\nDrTUPffQejTgHhraUg24hw40luXbpbXDffr06SOr62tf+9qR1QUc/ZL0u9/97qTzW9v78MMPz35N\nT5/4xCdmu1ZGX/rSl460vnPnzs16vbXD/clPfvLI6nrqqaeOrK51aCrcrXrkkUeOtL5thzvzldIW\nrR3uoaGhZTTgHjrQuOfeLpW57olKKeNvHkNDa1Kt9ZJZdDa4h4aGNktjWT40tKUacA8NbanWBncp\n5WWllCdKKV8upSz6Kw+llHeVUp4upfzlkvWw+m4spfxJKeWxUsqjpZTXLlzfs0opny6lPLKq7y1L\n1reqc6eU8nAp5cNL17Wq769LKX+x6uOfL1zXc0spf1RKeXxlw59csK6XrPr08Gr7ndn8Zamf8Al+\n3mcHwP8G8CIAuwA+D+DmBeu7B8BtAP7yiPr39wHctko/G8CXluzfqp6rV9sTAP4XgDsXru/1AP4b\ngA8f0Zh+BcDfO6K6/iuAV6/SVwC45ojq3QHwFIB/MMf11hW57wTwV7XWv6m1ngfwhwB+YanKaq0P\nAfi7pa6v1PeNWuvnV+nvAXgcwA0L13l2lXwW9h1ysSelpZQbAbwCwDuXqkOrFkew0iylXAPgp2qt\n7waAWuuFWutRfTvI/enwVq0L7hsA8A58FQs7/7pUSnkx9lcNn164np1SyiMAvgHg47XWzyxY3W8A\n+DUsOIEoqgA+Xkr5TCnl3y5Yz48C+FYp5d2rpfJvl1KuWrA+Lvenw1s1HqgtqFLKswE8COB1qwi+\nmGqtF2uttwO4EcBPllJ+Yol6Sik/D+Dp1cqkrD5HoVO11juwv2L4lVJK/NO6fboCwB0AfmtV31k4\nP+c9l8ozPx3+R3Ndc11wfw3AC9n+jau8rVEp5Qrsg/37tdY/Pqp6V0vIPwXwsoWqOAXglaWUr2A/\nyvx0KeWBheo6UK3166vtGey/zurOhar6KoAna62fXe0/iH3Yl1b40+GtWhfcnwHw46WUF5VSTgL4\nRQBLP3U9yigDAL8L4Iu11ncsXVEp5UdKKc9dpa8C8LMAnliirlrrm2qtL6y1/hj27fYntdZfXqIu\nUinl6tUqCKWUHwLwcwC+sERdtdanATxZ9l+ACQA/A+CLS9QlFP50eKtmfYVvVrXWvVLKrwL4GPYn\nmHfVWh9fqr5Syh8AuBfAD5dS/hbAW+iByUL1nQLwSwAeXd0HVwBvqrV+dKEqrwfwe2X/RY07AN5X\na/3IQnWtQ88H8KHVV5yvAPCeWuvHFqzvtQDes1oqfwXAqxesi/90+L+b9bqrR/BDQ0NbpvFAbWho\nSzXgHhraUg24h4a2VAPuoaEt1YB7aGhLNeAeGtpSDbiHhrZUA+6hoS3V/wcULHKubS+h0gAAAABJ\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116602198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Ok, lets try for a more interesting frequency\n",
    "freq = np.zeros((8, 8))\n",
    "freq[2,3] = 1\n",
    "freq_img = idct(idct(freq, axis=0), axis=1)\n",
    "plt.imshow(freq_img)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Alright sweet, that worked. (Side point: that plot looks wiggly haha)\n",
    "\n",
    "Now lets try... ALL OF THEM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saved to ../assets/components-0-0.png\n",
      "saved to ../assets/components-0-1.png\n",
      "saved to ../assets/components-0-2.png\n",
      "saved to ../assets/components-0-3.png\n",
      "saved to ../assets/components-0-4.png\n",
      "saved to ../assets/components-0-5.png\n",
      "saved to ../assets/components-0-6.png\n",
      "saved to ../assets/components-0-7.png\n",
      "saved to ../assets/components-1-0.png\n",
      "saved to ../assets/components-1-1.png\n",
      "saved to ../assets/components-1-2.png\n",
      "saved to ../assets/components-1-3.png\n",
      "saved to ../assets/components-1-4.png\n",
      "saved to ../assets/components-1-5.png\n",
      "saved to ../assets/components-1-6.png\n",
      "saved to ../assets/components-1-7.png\n",
      "saved to ../assets/components-2-0.png\n",
      "saved to ../assets/components-2-1.png\n",
      "saved to ../assets/components-2-2.png\n",
      "saved to ../assets/components-2-3.png\n",
      "saved to ../assets/components-2-4.png\n",
      "saved to ../assets/components-2-5.png\n",
      "saved to ../assets/components-2-6.png\n",
      "saved to ../assets/components-2-7.png\n",
      "saved to ../assets/components-3-0.png\n",
      "saved to ../assets/components-3-1.png\n",
      "saved to ../assets/components-3-2.png\n",
      "saved to ../assets/components-3-3.png\n",
      "saved to ../assets/components-3-4.png\n",
      "saved to ../assets/components-3-5.png\n",
      "saved to ../assets/components-3-6.png\n",
      "saved to ../assets/components-3-7.png\n",
      "saved to ../assets/components-4-0.png\n",
      "saved to ../assets/components-4-1.png\n",
      "saved to ../assets/components-4-2.png\n",
      "saved to ../assets/components-4-3.png\n",
      "saved to ../assets/components-4-4.png\n",
      "saved to ../assets/components-4-5.png\n",
      "saved to ../assets/components-4-6.png\n",
      "saved to ../assets/components-4-7.png\n",
      "saved to ../assets/components-5-0.png\n",
      "saved to ../assets/components-5-1.png\n",
      "saved to ../assets/components-5-2.png\n",
      "saved to ../assets/components-5-3.png\n",
      "saved to ../assets/components-5-4.png\n",
      "saved to ../assets/components-5-5.png\n",
      "saved to ../assets/components-5-6.png\n",
      "saved to ../assets/components-5-7.png\n",
      "saved to ../assets/components-6-0.png\n",
      "saved to ../assets/components-6-1.png\n",
      "saved to ../assets/components-6-2.png\n",
      "saved to ../assets/components-6-3.png\n",
      "saved to ../assets/components-6-4.png\n",
      "saved to ../assets/components-6-5.png\n",
      "saved to ../assets/components-6-6.png\n",
      "saved to ../assets/components-6-7.png\n",
      "saved to ../assets/components-7-0.png\n",
      "saved to ../assets/components-7-1.png\n",
      "saved to ../assets/components-7-2.png\n",
      "saved to ../assets/components-7-3.png\n",
      "saved to ../assets/components-7-4.png\n",
      "saved to ../assets/components-7-5.png\n",
      "saved to ../assets/components-7-6.png\n",
      "saved to ../assets/components-7-7.png\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAD/CAYAAABSKwXmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvdmPXNd1PbxuzfPYVV09N2dKIi1ZlmwiBqwfHMBADDgG\nkocgD35J8vcYsGEgDpA3PyR5CRALsAHLDkAFkhk1JdPgTJoU2XNXddc8D32/h/7W5qnb1STbfaok\nhWcBBTZvnbp16t5z99lnn7XXtmzbhoGBgYHBZOD6ojtgYGBg8CrBGF0DAwODCcIYXQMDA4MJwhhd\nAwMDgwnCGF0DAwODCcIYXQMDA4MJwhhdAwMDgwnCGF0DAwODCcIYXQMDA4MJwhhdAwMDgwnCo+tE\nV69eHWs+8XvvvWfpOM/9+/dtAOj3++j1euj3++h0Omi322i322g2m2g0GvKv89VsNtFsNqV9p9OR\n8wwGAwDAvXv3tPT11q1bNgBUKhWUy2WUy2UUCgXk83nk83kUi0V5r9vtyuf8fj/i8TgSiQRSqRSy\n2Syy2SwymYwcj8fjAIBLly5p6ev169dtAFhbW8Pq6irW1tawvb2NnZ0d7OzswOVyIRKJIBKJIJfL\nYXl5GadOncL09LQctywLOzs7yOfz2NraknNtbGwAAFZWVrT09erVq7Zt27h9+zZu376NO3fuDL3/\nxhtvyIs4TntdY/X999+3AeD27du4desWbt68iUwmg9OnT+P06dOYnp5GKpVCOp1GoVDAjRs3cOPG\nDRSLRTmey+WkfTKZlPPcu3cPAPDLX/5SS19/8Ytf2ADwpz/9CQ8ePMCDBw9w/vx5vPvuu/jmN7+J\nRqMhxyuVinwumUzi3LlzOH/+PAKBAD755BOsrKzg0aNHOH/+PM6fP48zZ84AAH70ox9p6etPf/pT\nG8DQs7S4uIiLFy/itddew+bmJq5fv46VlRVEIhFcuXIFV65cQSAQwMrKCq5fv458Pi/t5+bm5Dx7\ne3sAgJ/85CdH9tV4ugYGBgYThDG6BgYGBhOEMboGBgYGE4QxugYGBgYThDG6BgYGBhOEMboGBgYG\nE4QxugYGBgYThDG6BgYGBhOEMboGBgYGE4QxugYGBgYThDG6BgYGBhOEMboGBgYGE4QxugYGBgYT\nhDG6BgYGBhOEMboGBgYGE4QxugYGBgYThDG6BgYGBhOEMboGBgYGE4QxugYGBgYThDG6BgYGBhOE\n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\n5JjZA1kAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1172ac400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import itertools\n",
    "\n",
    "fig, axes = plt.subplots(8, 8)\n",
    "\n",
    "for (x, y) in itertools.product(range(8), range(8)):\n",
    "    freq = np.zeros((8, 8))\n",
    "    freq[x, y] = 1\n",
    "    freq_img = idct(idct(freq, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "    \n",
    "    ax = axes[x, y]\n",
    "    # Experimentally all things tend to be within this range\n",
    "    ax.imshow(freq_img, vmin=-0.25, vmax=0.25)\n",
    "    ax.axis('off')\n",
    "    \n",
    "    save_image(freq_img, name='../assets/components-{}-{}.png'.format(x, y), vmin=-0.25, vmax=0.25)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Neato! That worked! :)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generating the things from an image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  6.43676471e+00,  -2.67804573e-01,   1.14066855e+00,\n",
       "          1.28416012e-01,   1.65196078e-01,   2.76328891e-01,\n",
       "         -1.70577854e-01,   1.21208766e-02],\n",
       "       [  1.35862306e-01,   5.87481881e-03,   3.52431981e-01,\n",
       "          3.01222513e-01,  -6.82459017e-01,  -3.73353206e-01,\n",
       "          1.59132959e-01,  -2.50116836e-01],\n",
       "       [  9.84146150e-01,   1.76109941e-01,  -8.77287599e-01,\n",
       "         -1.82194378e-01,  -5.80653053e-03,  -2.06642209e-01,\n",
       "          3.10223718e-01,   4.79610215e-01],\n",
       "       [ -2.13674319e-01,  -2.03986691e-02,  -2.04994939e-01,\n",
       "         -2.32005457e-01,   5.74831191e-01,   2.41180524e-01,\n",
       "         -1.72429322e-01,   4.04527918e-01],\n",
       "       [  1.65196078e-01,   1.59533499e-02,   9.12904168e-02,\n",
       "          1.45871539e-01,  -1.86764706e-01,  -4.44932490e-02,\n",
       "         -1.80540936e-01,  -5.75197360e-01],\n",
       "       [  1.88319103e-01,   3.92539127e-02,  -4.27105658e-01,\n",
       "         -2.17986425e-01,   4.04082687e-01,   3.21360492e-01,\n",
       "         -6.34915065e-02,  -1.83447823e-01],\n",
       "       [  2.07300651e-01,   4.01933732e-02,  -1.58403733e-01,\n",
       "         -6.69611716e-02,   5.38718317e-02,   7.05020163e-02,\n",
       "         -1.00163382e-01,  -1.17451808e-01],\n",
       "       [ -3.08639267e-01,  -5.43818250e-02,   3.18181609e-01,\n",
       "          9.52258897e-02,  -1.69691772e-01,  -6.60887291e-02,\n",
       "          1.15682158e-01,   5.57505384e-02]])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116917c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.fftpack import dct\n",
    "\n",
    "freqs = dct(dct(img, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "plt.imshow(freqs)\n",
    "freqs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "seems correct..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x11fea5438>"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nBws2LlNa3PNuAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1180a6f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Convert forward and backwards\n",
    "freqs = dct(dct(img, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "reconstructed_img = idct(idct(freqs, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "plt.imshow(reconstructed_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saved to ../assets/img-components-0-0.png\n",
      "saved to ../assets/img-components-0-1.png\n",
      "saved to ../assets/img-components-0-2.png\n",
      "saved to ../assets/img-components-0-3.png\n",
      "saved to ../assets/img-components-0-4.png\n",
      "saved to ../assets/img-components-0-5.png\n",
      "saved to ../assets/img-components-0-6.png\n",
      "saved to ../assets/img-components-0-7.png\n",
      "saved to ../assets/img-components-1-0.png\n",
      "saved to ../assets/img-components-1-1.png\n",
      "saved to ../assets/img-components-1-2.png\n",
      "saved to ../assets/img-components-1-3.png\n",
      "saved to ../assets/img-components-1-4.png\n",
      "saved to ../assets/img-components-1-5.png\n",
      "saved to ../assets/img-components-1-6.png\n",
      "saved to ../assets/img-components-1-7.png\n",
      "saved to ../assets/img-components-2-0.png\n",
      "saved to ../assets/img-components-2-1.png\n",
      "saved to ../assets/img-components-2-2.png\n",
      "saved to ../assets/img-components-2-3.png\n",
      "saved to ../assets/img-components-2-4.png\n",
      "saved to ../assets/img-components-2-5.png\n",
      "saved to ../assets/img-components-2-6.png\n",
      "saved to ../assets/img-components-2-7.png\n",
      "saved to ../assets/img-components-3-0.png\n",
      "saved to ../assets/img-components-3-1.png\n",
      "saved to ../assets/img-components-3-2.png\n",
      "saved to ../assets/img-components-3-3.png\n",
      "saved to ../assets/img-components-3-4.png\n",
      "saved to ../assets/img-components-3-5.png\n",
      "saved to ../assets/img-components-3-6.png\n",
      "saved to ../assets/img-components-3-7.png\n",
      "saved to ../assets/img-components-4-0.png\n",
      "saved to ../assets/img-components-4-1.png\n",
      "saved to ../assets/img-components-4-2.png\n",
      "saved to ../assets/img-components-4-3.png\n",
      "saved to ../assets/img-components-4-4.png\n",
      "saved to ../assets/img-components-4-5.png\n",
      "saved to ../assets/img-components-4-6.png\n",
      "saved to ../assets/img-components-4-7.png\n",
      "saved to ../assets/img-components-5-0.png\n",
      "saved to ../assets/img-components-5-1.png\n",
      "saved to ../assets/img-components-5-2.png\n",
      "saved to ../assets/img-components-5-3.png\n",
      "saved to ../assets/img-components-5-4.png\n",
      "saved to ../assets/img-components-5-5.png\n",
      "saved to ../assets/img-components-5-6.png\n",
      "saved to ../assets/img-components-5-7.png\n",
      "saved to ../assets/img-components-6-0.png\n",
      "saved to ../assets/img-components-6-1.png\n",
      "saved to ../assets/img-components-6-2.png\n",
      "saved to ../assets/img-components-6-3.png\n",
      "saved to ../assets/img-components-6-4.png\n",
      "saved to ../assets/img-components-6-5.png\n",
      "saved to ../assets/img-components-6-6.png\n",
      "saved to ../assets/img-components-6-7.png\n",
      "saved to ../assets/img-components-7-0.png\n",
      "saved to ../assets/img-components-7-1.png\n",
      "saved to ../assets/img-components-7-2.png\n",
      "saved to ../assets/img-components-7-3.png\n",
      "saved to ../assets/img-components-7-4.png\n",
      "saved to ../assets/img-components-7-5.png\n",
      "saved to ../assets/img-components-7-6.png\n",
      "saved to ../assets/img-components-7-7.png\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1220afa20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Lets draw the compnents that come out\n",
    "\n",
    "# first need this function\n",
    "def lerp(a, b, amt):\n",
    "    '''Linear interpolate between a and b'''\n",
    "    return a + (b - a) * amt\n",
    "\n",
    "freqs = dct(dct(img, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "\n",
    "fig, axes = plt.subplots(8, 8)\n",
    "\n",
    "for (x, y) in itertools.product(range(8), range(8)):\n",
    "    freq_select = np.zeros((8, 8))\n",
    "    freq_select[x, y] = 1\n",
    "    \n",
    "    new_freqs = np.multiply(freqs, freq_select)\n",
    "    \n",
    "    freq_img = idct(idct(new_freqs, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "    \n",
    "    # If we draw everything with in the same scale it's hard to see the smaller patterns\n",
    "    # because they're so small and come out as mostly grey.\n",
    "    # But if we draw them all with their own scale we can't see the relative size.\n",
    "    # So we go somewhere between.\n",
    "    scale_adjust_amt = 0.1\n",
    "    vmin = lerp(freq_img.min(), -1, scale_adjust_amt)\n",
    "    vmax = lerp(freq_img.max(), 1, scale_adjust_amt)\n",
    "    \n",
    "    ax = axes[x, y]\n",
    "    ax.imshow(freq_img, vmin=vmin, vmax=vmax)\n",
    "    ax.axis('off')\n",
    "    save_image(freq_img, name='../assets/img-components-{}-{}.png'.format(x, y), vmin=vmin, vmax=vmax)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAD/CAYAAABSKwXmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsfUeTG8l29YH3QMG1pxlK7+lpo4X+/0raSBEK7TSeHA7Z\nDt4VCh74Fnzn8lZ2odnNqSyOPtWJQJDD6QYOsjJP3rx5TeJwOCBGjBgxYkSD5LcmECNGjBj/lxCL\nbowYMWJEiFh0Y8SIESNCxKIbI0aMGBEiFt0YMWLEiBCx6MaIESNGhIhFN0aMGDEiRCy6MWLEiBEh\nYtGNESNGjAgRi26MGDFiRIh0WG/03//931bzif/1X/81Ecb7/Pu///sDnslkEolEQl76v5PJ5IP/\nr38mmfy8byUSnyj+9a9/DYXrdDo9AMByucRiscByucR8PofrupjP5/Jvq9UKu91OuGYyGRSLRZRK\nJZRKJVSrVVSrVZTLZWSzWeRyOWSzWaEdBtfFYnEAAM/z4Hme8JzNZphOp8JztVoBAFKpFNLpNHK5\nnPAsl8vyKpVKyGaz8gqT63a7PRwOB0ynU3mR53Q6xW63w3a7xW63Qzqdllc+n5dXuVxGpVJBpVLx\n/XuYPAEcAGAwGMjL8zwsl0ssl0vsdjswjX+/3wvnVColz79cLqNer6Ner6Narfq+jw2u4/EY4/EY\no9FIxnQ2m2G/3yOVSsl6IddkMolcLodcLodyuYx2u42TkxM0Gg3fWrPFdTQaCVe+9vs9kskkUqkU\nDocDdrud/BvXzx/hGlu6Mawiru0RI4YfsejGiBEjRoSIRTeGVdDlEiNGjE+IRTeGVcTuhRgx/IhF\nN0aMGDEiRCy6Mawidi/EiOFHLLoxrCJ2L8SI4UcsujFixIgRIWLRjWEVsXshRgw/YtGNYRWxeyFG\nDD9i0Y0RI0aMCBGLbgyriN0LMWL4EYtuDKuI3QsxYvgRi26MGDFiRIhYdGNYRexeiBHDj1h0Y1hF\n7F6IEcOPWHRjxIgRI0LEohvDKmL3QowYfsSiG8MqYvdCjBh+xKIbI0aMGBEiFt0YVhG7F2LE8CMW\n3RhWEbsXYsTwIxEvihgxYsSIDrGlGyNGjBgRIhbdGDFixIgQsejGiBEjRoSIRTdGjBgxIkQ6xPc6\nHA4HTCYTTCYTjMdjzGYzzGYzuK6LZDKJZDKJRCKB/X6P3W6H/X6PXC4nr5OTE3kFIKzYowMATKdT\nTCYTTKdT4TmbzbDf74Xr4XAQnslkEtlsFrlcDqVSCScnJ2i326jX69a5uq4L13Uxn88xGo0wHA4x\nHA6xWq2w3+/ltdvtsNvtkEqlUCwWUSqVUKvVcHZ2hrOzM7RaLetc9Vj2ej10Oh10Oh2s12sJH0ul\nUkin00in08jn86hWq6hUKqhWq2g0Gmg0GqjVala58tnudjtst1vc39/LazAYyIs80+k03rx5I698\nPo9CoYB8Po/1ei0vAGg2m6GOqUan08H19TVubm5wd3eHTqeD+/t7AIDjOKjX62i327i6usLV1RXa\n7bbM20wmI3OFF+jZbNYa116vh7u7O9zf3+Pm5kZ47/d74Xp6eorXr1/j9evXOD09RTqdRiqVQiqV\nwuFw8EW/pFIpa1zv7+/x8eNHfPz4Ed1uF8PhEIPBANvt1qdP//zP/4y//e1vuLq6+tJnHOUapugK\nzIgIDt7hcPDFbep/Nwf4WyKIy5f+OwoEjVMikZAx5d/1v30rBHE0eeqf/RbP/3A4+ESIn09+3Hz5\n0r/zreer5ppKpQBAjBrNUwtslLyC1nUymUQqlZKxNbnudjv5GSKRSEQ+znz+FH5tMGquX7vWrIju\nl/BnEVfg4YLXG8Nj//Yt8Nhnmw/eFOAoRfiY4AaJL3/+zyK8BBe/Fl0uOp5+gr5jFHz152qROiZk\nQRu1zXHm5+nNSXOloHHM9DPQz+FbCC4/l1wPh0MgV24QesyfCmui+6VF9GcSXuJLnP4Mghu0eL4k\nat8ajwkv8S2EN8jSNQWCwmuK2WMnjqhwTHS/pZAFCS4RtJERFLJ0Ov2n0Aby03z5fMkV+Lo1Foml\ne8yN8Ni/EbYmsvmZQVwf++9vwfXYYueffwb3gjmm+qge9Hf9e9/Kyt1ut2IRkjP9zlx0tHYOh8OD\nnye0iIQJ/dxpZXNzSKVSyGQyAIB0Ou1zg9BfHeRisDlX6Ssn1/1+L1yz2Sz2+71w5R3PdrvFdrsN\nFF1bXPW46nHS45pMJmUeaK6bzQbA1z1z66J7bDEdE9yocUxATT6PiW0UCLIC9WSkmNEH9S2t3CCr\n0RRdU3i/hXtBHxW1RUiOXHTaKuOi488D9t0LQUKmxSGbzQI4LrrmBmFzbnA8KaL6s03RpYXO39ls\nNshkMpGedPS4kqv5/LkBc9PdbDZyMaz9z09F6KJ77Jj4pQX1rYQ3yAoP4s0BN/9flBwfs1gouH8G\naxcI9j2alq75s9/i2WthCrJ0TM5BljG/o02LzBQyfmY6nUY2m8XhcDhqPQZZ5bbAMd1sNr7NybR0\nKWj69LDZbAL95ba4a7F/zNLVLob9fi+iq08Zz0Fklu4xl8IxizfKS4nHLHHzZ83/FyVXc5y0a4Fh\nbVp4g96DsMnZ5GheRj3m033MhRI2tJiZoksx4+fzxUWnxUF/R1s8t9stVquV77N59M3lcjgcDshk\nMj7rMUjIbM9Vfu56vfaJGcfU5KrHdL1ey89r2Hz+/FyOk/n8eWHGZ8zfWa1Wvu/zHK7WQsaOielj\nx8hjomITX+J2zK0QpfA+JkjAQ9dCkLhFbZXrZ8hbYPIM+p2g0C3bOGbpUMwouoQWCC0O5oWWDZ5c\n6Ov12icOmUwGuVwOAHy+R9N6PHZCssH1mOhmMhnk83mxdHlk/5Lo2oLezPS48vlzXpqnyfV6jeVy\nKaL83PVvPXrB/O+nWLlR4DEBDeJr+h71+0Rt6WpoYf2SpRsVzHE7Fu9qjvW3iCmlMOljOC0d7VLi\nv+92OxEH05q3BS265KrFIZ/PP9hwtfiZQmb7yM7PpZDxs8lVJyDp7/ctRFePK902HFfTpZhKpbDf\n70V08/n8gwvYpyA00X2q++Axy/cx4Q1LRMz3/pLgHvu5xyz2sLlqUTJjH7WVy599TnRAWFy5UMgv\nyArUmX76Z/h75ovfIeyTD9/vMUtXW+iaj7Z0TYGwJbzkuFwuAy1d08I2b9mDIhhsH9n1BqHdC2am\nGTcy/TtmiJstrvpzzXFlFqI2BuheoOgGnSL+NO4F8//pP4N+Lwo8ZQMwrZxj1rEtaCE7dvzWomsK\nrmmdayHUu7cNrkFWoJleHcQvSHRtiBk5aGtQHy+1D4/WGsWMVhxFJQqfLkV3tVqJkOnTA7+PuTlo\nnto/aQvmkZ2fyw3iGNf1eh0o1ID9DYKbmT5B0EjgvOR3INfFYvFAqJ+KUEX3mBAdE69j4hzFjmzy\nOmblHvtvk6sNnkGiG2QFBFmEQRdVQZcpYYkuj2YmT33zb1q6ej4EWbraFWHy/iMIsnR12BhvpdPp\ntO+iTbsXNpuNvHgUjcoi0+KQyWQkzIp8OJ6m6PL52xTeL/l0edvP/0+uFF3tkrC9QQSdIIDP7gVy\n5amGXFerFVKplE90nyO8obsX+PfHXk/5OfMCyMaRPYiD/regnwv6HdNHZuPI/qVLNM31KZZu2Nhu\ntwDgEy9+Fn1htCD4d30018Kr/YDadRIWtOgG+XR1VAAtWR29YIqu3lhsIMgi2+/3Igz06ZIfx09b\n8TrUzAZXjmnQBkGu6XQahULBt4505IgZnWHT9wwE+3QPh4PE5fKCkuPF77LdbpFMJn1+4OfAmqX7\nmOB+SZT1z0Zp6QYJ/pd4899tcOUDNYP3NUe9gIIu0kxL0haYoaPFK8jS5e06v5veEPR31IvOhuge\nDp/dC0Fxmlx02mWgkxO08NqMXACORy+YF2n8OXJkxTn+G61120JmWrpM79VCxp/TY0oh0+4TmzgW\nvcDnr6NXOL78bgB8Qv2ceWrN0tV//xrBNQUtbJ6PWbPHOHxpcwib67EjO2H6PLkQTUvX5G4Dpuia\nF2nAZ58u/x7kanrsIi0s6BPEY9ELFAiTG8WWvl2dFWYD3BzM6AUe2RkrutlsfJuadoXoTSVK0dVW\nK61yAL6f4ZgmEgmfkNkW3mMXlDpkUBtgHMP1ei1/fk3iSWTRC1/6f0H/38aCCxLSY9z0v5t/P/a+\nYcK0dM3PN8U1KCtN87O56LTompuDFlpahEEbgrZyj82RMMD3ozCZPl296LRVfMy9wCwrWzD9s/o2\nXQfo09fI70jXiLYoGT0QNvieeiMzNwi9kWmu/H6Af9OOwtLV48rvYIouTw1cX5wvfBb6+z8FVi/S\njv39S7+n/922e0F//mOCG8TXtHTDxmPRC9p9oC1CTtRjVq4t4eWOrzcIk5++SAuqvXAsesGW/5GL\nSR9xyZmXabQy0+m0/I62jk3L3gbIk+Kgn/1jacDcKMyMO9uW7pfSgAH4MtK4QfDPqLnS96znm04D\n5hzQGWnax/vNLV3+/alidex9orR0H+Oquejf0z9HnrZ8uo9dogW99P/TMC3JMGFepGm+QSFjx9wf\nQVaujTnAz+KCMjc03d0inU7LoqToamvOdm0DihGFTCdBUMi06OrfAfy+aJubAz9X14nQn2kW5zEr\nd+k/bQsuueqsPZbyNEWXbhvOXW4QX7vZWnEv8M9jr6e8hy2H/7HN4TFr9ym/a9P3+CULVYtakOVt\nWro2Fh8XuOl7/pKlq/npTYHHSxuLzzxBPGbpbrdb32LkotMv26KrrUdeSpkWmWnpUhQARGI9mqcH\n7bLRG5lZEU2LrrbKbW24GpqrjpYxRZcbrxbdP7JBRNKu59j/f0yMbViOz+Gof8bkZ/7dFk89kY+N\nlbZs9Z9B72XTetRCFsRRC68WN80vCp7687TA688zNwlzgzDdILbFQVvl/Ezd9sZsK6N/B3g4f2xC\nc9URKoDfpx80pubFqm2Y46rvG8zUdZOrGVGkv+eXYKW042P/70sEoxI0/VlBXI79v8d42/I9PkVw\nn+r7tC262mLV3I4V4gniFvT3MGF+RpB4mqnLj4muDXeNydcUB5Nn0OnBPDlEIWgmV0JvEOQdJLpR\nuRZMrvoz9SnCFF6eIPj6Gp6hX6Tpv5sLR+9kX/r9qHBMcIPcBUHfT/+8LW6PLZan+nRtW5CmVf4l\njibfIMH9Fpau5mxuFPy9b2npags2yNLVl6payKLw55pceZHHsQsSXf2cv9ZyDIMr/1tvZk+xdL9m\nntqNyYgRI0aMGD4kvoV1GSNGjBj/VxFbujFixIgRIWLRjREjRowIEYtujBgxYkSIWHRjxIgRI0KE\nGTLmu5E7HA4Yj8cYj8cYjUYYDAbo9/sYDAbI5XLI5XLI5/O4urrCixcv8OLFiy+9f1gxWQ9uDl3X\nxXQ6xXQ6xXA4FJ6bzQaZTAbZbBa1Wk24NpvNb8Z1tVrJy/M8zOdzzOdzHA4H4ZrP51GpVFCpVFAo\nFOR3mTfOdFIAcBwnFK6bzeYA+Nut63RQz/Pgui5c15VyiMlkErlcDrVaDbVaDcVi8fMXPxwepK7m\n83lrXHVqr+u6mM1mcF3XFzpGno7j+Hiacalh8XRd9wDAl5LMDCrynEwmmE6n2O/3yOfzyOfzKBaL\nKJVKKJfLUtWLXE0kQop1DBpT/dbj8Rjdbhe9Xg+bzQb5fB65XA6lUgnVahXVahX5fN6XWs2i56rN\nubV1pdHtdvH777/j999/RyqVwvn5OS4uLlCv16WGMWtxPIKjXK22YGcxCbYZYcEOHf8WZSO6x3iy\nxJvmSmEC4Etr/JbY7XZYLpeYz+dwXVdEd7/fi+hys9AiBjxMVLABvdC22y0WiwUWi4Xwnc1mUj8g\nlUqhUChIg7+g97JR8Ea/N7HZbITrbDaTF8eKKaylUulJ7xcGzDKYgH9MZ7OZGAv7/V42Y6Yua8GN\nCuaYsorXeDzGdDrFbDaTf2MdYD2uTEowv7dt6NoWruvC8zwsl0skEgnMZjOMRiMAQKlUQqlUeoro\nHoVV0aVlRSHTBTv0JPrWQrbff+57xNqauvXJ4fC5nNu3DrHbbrdYLpc+a0yLLq2hYrHo2zQIigib\n7oWFoMVBgdAi5rquiAIrOJXL5UdFN+wNIig5Y7PZwPM8TCYTH1/yTKVSKBaLUoIw6L3C5qkrxpmi\nS7HVopvL5bBcLrHb7eS0Y3K1NX+Dnv9msxGjYDwey9iylu5qtcLhcECpVJJECl0/JGrRXS6XMl8p\nugAwnU59WYAsT/m1sG7patHVJdSIP4voPmbp/plEd7fbYbVaiUuEosvjGHfgWq12VMhsdDkIqh7G\niUxhoJDpik4ARCiCYMvKNUHRNbmSZyqVguM4D0TX/M5h8g1K79WiSxGj6GazWSkoU61WH2y6Nufu\nsefPjUxbutvtFtlsVgrK6Oev3RPfQnTpAvM8D6vVSuYqueVyuQeb2XMRmuiyhYVOOdRH4MViIWKm\nU/7m8zlmsxnG47H4roJEIazK/KvVSniSBwealhi56rYnPCLPZjMUCgXfYiQ4Qf7I0UODi0TzoB9v\nOBxiMpkId1afYsO8fD6PQqGAZDIpE5y8bAkvU06ZAspjWa/XE64UXXLdbrfif9T+Ms3VBk/AP670\n53e7XZ+lS57pdBrlchnlchmVSuWBv9GmC4RGwX6/x3Q6xXg8xmAwwHg89o0px269XiOXy6FQKMiY\nGr5RK9DPn1wHgwF6vR5Go5FPdPWprFAooFAoIJH43LySldSAz+sg7DHWXGezGXq9HrrdLobDoYwt\nDcf5fI7lcinrKZlMijvvues9dNHVlyc8WmgfCScPf24+n8tEyuVyyGazgeZ72KLLz6c48DWfz2WX\n0zwputPpFPl8XnhmMpkHVk5Yokvwwa/XaxHd0WiE0WjkW3TcBNbrNQqFAorFItLpNEqlEorF4hcL\nzvwRaCFjGxstupzEeoNgkXCKbjabRbFYlE1N5+zbcIXQD0qupui6risbQCaTEcGtVqsoFosoFovC\n0zwahwG6F/jsV6sVptMpRqMR+v2+jClPOubzL5VKMqalUsmq6OrnT74U3bu7O0wmE9/9A7lut1sx\nEFKpFMrlsvAmbImu1qrpdIput4sPHz5gMpmIq5EalUgksFgskM1mUSgUZFwTicS3E10eu+gPpUCY\nli6P6fTraUuXE9lmmw6Krm63oq1cbenqycHLq9lsJjfEwMNKXzZAIdPCPxwOMRqNRCC0n3Sz2chC\nYyuXoO6mYUIXWSFXim6/38dwOJQNeL/f+0SXYsaLH83VxrGd4LjSraBFl3NBW4mVSkUiGDg3yFlv\nEGGBIs7NgTy16FLI2E4mmUxivV7LRkYL8o/6Ib+EY89/OBzi/v4ek8kEq9UKy+VSaiVzrtLSpQWZ\nz+cfWLk2wJq43HQpuq7ryl2OLlY/n89RKBRQqVRQKpWQSCS+yhgMTXTpdKZfdLlc+hzSuombrs7D\nnxuNRlKRXU/csBeb53kAPodeLZdLOfrO53O5/dXuB8Dv89M9sYIuZcICJ5y+kNL+RoqD53m+C8pk\nMikuiHw+L1EC2tq1sbElEgnxjeubdYY1McRNX/ql02mx3Gnt8Giso1zC5kk/vfaP8qXdYlp0eSIb\nDocS7lYulyMZU8/zJASTPLm+FouFzyeaSCQkVJMWbqlUelBFzQZX7RvleNE40C18NAc+e/qk6TO1\nXb3t2Ka7XC7FdUC/tOd52Gw2aDQaGI1GqFarj0azPIZQRfdwOAhBWoX0hege8bqUG8WEQqbNdRtC\nRtHlZOVk1huErq9J8dW7N49p9PXZur3mhKM4UGj1ZQ/H2uzxxJMDYzcrlYqMv82ThLlBUCCm06mM\ntxbdVCqFyWSCSqUifKPial6ekSvnsOd5wlOLbrlcFsHlrbtNcdCRFVp4Z7OZXPzqS1/GyFerVXEt\nMRLH9sVUkOjylBNUjH+/3z8QXDMO3tbY8lLa8zyfK2yz2chJQV8GrlYrces5joNSqRQYIfQlWBFd\nbY1RyIIKKdPSdV1XrAW2lLZlPVJ0eXykj5RcdVdQIFj46HKgD9qmpWN+th5bWrmLxcL38A+HwwPB\n5cWgbYEwRVdvEIwvpbuDLVC4OIvFoo9r2D7SY1w1T/rz6NPTPl3Ns1wuo16vy7yOYnPQVi4tcvrP\ndT+y/X4vJ51yuQzHceTOxbbwHrN0Pc/ztWsiz91uh1wuJ+up1Wr5IkRsWrvHLF0dGkafLjdjim6j\n0YDjON9WdPUX0b3ktcuAAeb61hj4PKm4c9g+Bpk8aSmQp9n2hP9O39pisfC5S2xPZB3SZo5pJpPx\ndRM4xtUcV1s49vx5gqFvUUd/PDauURwvTfeX7uVFjjx9ca7qOWN7XOknNecqx5R/8mKYz5+nMx3u\naNvSNWPzuRmQI0+Jmqu+s+BziAL8XF6m6jHiXNV/kutj6+op42tFdM0B5ETWnVV5mQb4L+H0l7At\nZOaCAz73vGdUAjeHx4QsCnF4TMiAT5dP5PolIbOJY4uOG4QO+OfmFsQVsN854Nhip+ia7VqAz6cO\nLX628ZghwznA587OtceeP2B3XZkbmWkg6E33GNeo4vaDjBkAwpWZkjr+WW9mXzuukYgu8HkiM01V\nHyH43+YubhPHJjK7gNLFwc2BtQAOh0PggNsEJ4fekYHPkyOVSklsLC/UjllxUW8QpvWg4y8ByKIL\nWqi2ETRX9WbAjTcocy3qTVdbuuaYasuWMdiPCZnN9WVuuuRKY4brilx1dIZ592Mbx+aq3iDo/mCk\njeZqzu+nIjTR5Q5GEeDDZ3to3p4XCgWfSa9bWWuz3tbNNQvA5PN5X4vlbDYrPmXy5G0sb10pbHrC\n8/vSKrIFTk6GqZRKJeTzeZ+fTKcu8wLI7PNkM7SNoL+OIVXVatWXEMEThLaAdVpyVFlIWjDT6TSK\nxSKq1apsDjw98C7CTDCwGbmiod+fFhhv+Jn4cjgcfMlHFArze/L9bIGfQ8u7UCjAcRwkk0lJLkkk\nEhI9xI2OemGGM9q8gyBPbgDFYhHNZhP5fB6tVgvNZtPXs22z2UhijHkZqE9wX0Joost4RYoQ8Nm6\nTSaTchtYLpdlF2RoGf1OeofRR7swwfhaTkrta6ZIMECbMY/cJHghaPqobYmujlXUD5fVmRh/mc1m\nJcLCvFTRomuz0A2hJyPHs1KpCG/OE3MTM/1iUWwOmnMmk0GhUECtVpMLyHw+7zMKzCaUUXLkZ6XT\naRQKBdkoGONK0WVAf9B3tH3hpz+Hm26xWITjOMhkMqhWq6hUKiK6us6JjjM3x9TWhSrjdKk9pVIJ\nrVYLxWIRrVYLjUZDDKxUKoXVaiUbrxkQ8BxrN3TRpcgCkEFknCCzeXK5HBaLhVg33J1N0bUhZBTd\nfD4vlqBOPS4UCiiXy6hWq0gmkzI59DE4yNLle4UJvcubogvAl20EQLjyWMkqSaaVa1soNFc9L7jx\n8nipNzMmrejvHiVXWrraIiuVSr5Tma7NYfKMAjyJ6XjmSqWCcrkMAGLAkCN5mpauTVeINhBo6R4O\nB+TzeTiOg1qthkQiIVwZRuh5nm+9643NljvkmOjyT4au8STseZ4YCjqO/7kuptBEl45mBhXzvzkp\nmc3jOA4Wi4XPQqO/kqm1DIy3EYZFwaLVRfElz1KpBMdx4DiOb3LQb7parURwydemFanFh4KrXSCs\nRaqtB2atTSYTscb1xsJjFYDQajDoCcexYLo0M6NMrqvVSriykhN5aosn7GOxaa1SHHK5nHCs1Wqo\nVqs+oWWolum+scVTJxHoiIpCoYD9fi+1aE0hM8dUP3ebR3WNRCIhLjxmcOl1pUt+TiYTee6MwtEl\nYG1tatoVks1mUa/XZRNrNptoNBqiCbVazVejRRtZdPs9FaGK7uFwEB8TLUAewyuVChzHQaPRgOd5\n8nO8DZ7P5yJiTAO0YUUEiS79T8lkUnjW63Ukk0nhSutsPp8D+Ly58GLA5rFNX+5QQNPpNCqVChqN\nhnClQEynU58/kr/DCcwdGrAjuhQJbmhceHpcuegoDDy+68VnU3T5fjzp6GI79XpdxpWWGE9m+/1e\nMpZsbw6m6OqEkqDnr8eUEQ20OPncbQlvkHuIokvXgrmuNFd94uBlnI7MsQWuEW64PD1wM+Npl3Uv\nut2uRAmZ7r+nIrRvQ6c9rVxdLUjnrdfrdd//ZyC1FjGbxZcpuqxcz0LKnMgcbE4OChYrojHOWPO1\nBX200guPfrx6vY52u412u41UKiWLrlgsijis12tfGT3ArsWjNwhdbKder6PZbKLZbIpAeJ6HQqEg\nAeir1cqXNGGKWZjge9IoYIEY+vP4YsYfM+kWi4VYZvqi0saFj34/nqy4mfGCisdg/fxHoxF2u50k\nJnFjjcKnS9BVyA4mNLi06Hqeh2KxKC5GPn9aunwfW6DQ73af6k83Gg00Gg2xzEulkpxw9/s9xuOx\n6ACTPYDP4xq5e0ELBMWBi53ixP9mKAZ9Pfr4a/M4QZ7A53hcHtm4OVCMKVLkulqtJEiavx+FP0+7\nFnT8YLlcRrFYFB86/x8jRWjF87txbPVtfJgIsnTpc65Wq5I6S5Hj92DmHNPAgwSX7x2mVc65Sj66\ndQzHFfg0dhxHuiDMyBBbPHXoFJ+v9o2zGtex58+5G3Q3Yuv0wPfk2mHmHgsa0eqm8bBer33RQnQv\n8GLNZnib9nHrS1/OVWoA140ukfpH7ptCt9v1rb4WWy263DkA+EROHyltQ/tlGYZFIdCWIQVquVz6\nrF7bm4PJlROZk1WLrv5/yWTSt+jofzSPmGHHQpo+XQoZRZcVz/TlKo9uHHMuNL1B2LDKg3y6FF3H\ncVAsFn31Nchbz1W98PSFSpjQsbV6o+LmwDHVoktfOtcbj+l6rtp2L2hXWKlUQr1e9xkIFN1k8nOV\nMVq8tHRZc9fmpR95m6LLdjwcN/6MPsWb7rpv4l4gaEGa7gJt0dKK0JctpoVjG9rS5a7MWpl6E+Bg\n6gWnYwujgl5Ypuhy3DhR6H7I5/NSXEZvaDoFOyx8ydKlkOlFxwtBUyD0KcK26AZZuuTG78HvwsIs\nWnTNCJP+MACoAAAgAElEQVQwEXSRRtFl09Fjz5/rar1eP9hwbeAxS9dxHF8JTBoCXEu0dGmVA/CF\nE9qGFt1qtepr5qqhXaZBkRaRuxf+f4AZlP2/Cf+b+Jpc/0zczc3Upl85TASN4Z9tXIP+fgzfcryt\nuwz/7JMpRowYMf5/QjRXmTFixIgRA0AsujFixIgRKWLRjREjRowIEYtujBgxYkSIMNv1HIDPITg6\nQPxwOODdu3d4+/Yt3r17h4uLC1xeXuLy8tJX0Ynxu0Exj/l8PpQrxcVi8YCnvq28v7/Hb7/9hnfv\n3iGZTOL8/BwXFxdoNBoS/maW/DORzWZD4ToYDA6Av56FDshm99IPHz4glUoJV1Z1YpyhLhpvxpTW\n6/VQuH78+PEAQBIeWD+D6Pf7uL6+xvX1NRKJBNrtNk5OTiT1ktlWrOilu9tyLoU1rqvV6gA8TGhg\nGFC320W320Wv18PJyYm8iMPh4GteqSvo/R1hXX8f/s5Xiu6w9Gkul8N8Ppeu0IlEQupFsDU8Qx75\n+9vtVn5XZVKGwnW73R6Az6FeDP9iGBvbDY1GIySTScn81NmnjB/n2tIZrWFyxd/HVTfRZQx0Pp/H\ndDpFp9PB/f090uk0Tk9PcXZ2hkKh4KsTzHE068x8iWtoossFpgOGudBZX4FFf1noZDKZSG647otm\nq5RbEE8APlFi6iTL4+lmlAze1gVybIKTTceu6lKDbG2/XC6RTCbhui7G4zEASEorhVoHntuI19TV\nxCiSmisFij3qGEcKAOVy2VepjRsh50LY4xwUX8nnv9/vMZvNpEOxTvXkotQ9vQ6Hg/x32Flemq+u\nP8BSiOxB1u/3AUAqtzGGt1AoSIy2rh2t11dYXHWmJ/+b6bzr9Vp6kPX7fSnOs1qtpC60rv+rMzBt\npgHrLD4Asv51fz+OWSKRkM7PuoiU/r5PReiiqz+cVdmZZ8/dlvUWmE1DweX7aEEIWxwoCFo0d7ud\n7HisAcBi4Gxax4BoBk7b3hwA+JJIdNA4q4mxMeVyuQQAX/EQ4LOFrDcaW4H8HBedNMBnzcImFF5y\n48/pLComAmixtSW6gL/NPS1CCu5gMJBEkvV6jXq9DsdxfL2zdGU026LLDC4K2WQywWAwQK/X81m0\n6/VaTjt6EzRTl8OEXr98pkFcO50ODoeDGAu1Wg21Ws3XVUJriU3DRmvBdruV2r66MzRPhpvNRk4S\nlUrFV372uRxDE92gfHN2W6U4UHRXqxVc1/XVBNUTNoqB1tDWN0Vss9lgv9/D8zxfpo8uEG2bqz62\nEHrT0nxZt0D/Lo+7FDKNsEWXdYo1391u52sdz3lgVtpnsXDAboETIugz2IZFd7EdDAZyUuPGZtaz\nsGkgaL7cMNlihidFdrAlfx59M5mMPH8bdalNBG2QtLxNrjRy2MU6nU6LFRkldGEmz/Pk9Egrdzwe\nP2jpk0qlxCX2tWs/1II3AHz58vQ59ft9DIdDzOdzmTAceKaCVqtV2TlslnIzC6lw1+UxbTgcYjqd\nyuQFIG4RprXqXS6s4iZBCDoGL5dLjMdj9Ho9DAYDjEYjGU+KHH1/PF5y09BcbR7ZydfzPFlog8EA\nw+EQs9lMrEeOMQv40A9sWyTM767Htd/vo9vtot/vYzQayWY8Ho+lCp1+n2Qy6fNDAuEVvDH5JhIJ\nOar3+33c39+L75nPfj6fY7vdShU68z34fMg1rLUWNJ82mw1c18VgMEC320Wn00Gn0xGurutiu90i\nn89L7VpCb2DkGvacMMd1MpnIePZ6PYxGIxFitpHP5XJoNBp/iEuo6qYf6G63g+u6coEyn89FdDno\nk8lEFhyPbbqSl02QJ63Z4XCIu7s7jMdj8ZVSGFzXxWazEa68UKP4RgG9QQyHQ9ze3mI4HIrFy1NF\nMvmpri5rCejaF1Fw1XPA8zz0+318+PBBNof5fC4ix0XHQjPlcln8elFbPXpcO52OiC6ttGw2i2q1\nirOzMylabRYQorVus9znarXCeDzG/f097u7ucH9/j16vJ+LATa1er2O9Xj/4fVN0bUIL2f39PTqd\nDnq9nohxqVTCfr+H4zgPOoeYfG1juVzK86fgjsdj4ZVIJDCfz1Gv13F1dfWHPit0ddMTUIuuvqzS\nN9QUXNd1pfBEFNCbA0X39vYWs9nsAVda5RQHtseJYnMgV/KlONzc3GA8HovfjJsZxZfV7slVN1S0\nzZWb2Xw+R6/Xw4cPHzCZTGQsWa6PvjTHcTCbzVCr1QCEbyk+BXpc+/2+WOb6Uuf09FQ2DSKRSMg8\nCupNFjboc767uxOB6Ha7Yt3S/XF+fh4oZHreR8GVhb8pup1ORyqLkevFxcWjG0RUojsajXB9fY1+\nvy9dInhyZNfoq6srcTV9Lay0YGf7HR6D7u7ufBcOvFhbLpdS3Jq37vRj2gZ5rtdrzGYzDIdDdDod\n6dXE8CUWhl6tVlKImf4nm8XWNejI3263wvX+/h6u68rFhb603Gw2aDQaGI1G0t02aq6bzcbHdT6f\n+8KYdLPHVqslXAHIpYpN6M1hv9/DdV057ejTg954GZ5Fy1e3pbIJ3Y/L8zyMRiOxxqfTqVwA8QSZ\nz+cxHA4xHo8xnU591bGi4Ko3Xc11Npv5mqcuFgsUCgUMh0NMJhNpg6Ob29rmaroYO50ORqORr4cf\nT2jpdBrj8Riz2Uz+23TbPQVWRFf3vuKNZbFYlPhNXq5Mp1M0m00Mh0MMh0NpYBkFyJPRCRTd9Xot\n4Tbasb5arYQnHekqLtMqePnIVjzD4RC9Xk/cCPl8HpvNRsJdttutHI9YVo8tu6PgqtsGMQpguVzK\nuNJipwuHViX9+lFtEHrj1X5SWq2pVErGnR0Z+v0+Op2O9FLT9YxtCQUbKO52OxGybrcr4gB89kvu\ndjsZ8263K26bSqXiC3W05b7RYaLcyO7v7zEcDqVRqjYSxuOx3Ps0Gg2JebZ5/0Bw8+e40qfPUDGe\nYtbrNTzP812yTiYTmc/fXHS56DzP84WJOI4jdTQZQkQRowXBgsdRgEJG0eUk3e12qNVqYunSp8dF\nNxqNZCJHcZzUXM1b4O12K0JFy4EbBLnW63VUq9XIuJqbLicyEzPY7og+/fV6jeFwiMFggFqtJg0s\no+LKYyPnwP39va+dlG7RQ9HtdrsSn8uW4jZjSnXXWsZid7tdzGYzX9gSxSGVSkkoWb1eF6463NGW\nkPGks1qtfCfIyWTi+2waCZlMRkS32WzKHGGfRMBeVAjdLOQymUzQ6/WkjRQ7GfP/Z7NZmdPj8Vj0\n7LkITXRppmuBoF/EdV3JOOPuwZ2O1tlkMhHnv3byhx2ryffm5mDyPBwOUsWe34eceFExm83kGK8L\nTZuc/yjod2NyieZJ32KpVHoQUsR24dovxeOnibCsM4o6RcwMaePC0dX4N5sNEokEXNeVuMharSYW\nm/nswxpXPluGM2nrZTqdSiHrSqUifbsAiGXGTKVisSjGBGDPF82IH1q5dBus12vJhKMbhKGZs9kM\n/X5f4nVpQRJhiy7HgGPquq5s/IwCYd8xrhv6S2ezGXq9HhzHQTKZRLFY9IU72togyJXZctPpVC77\n2UZKNzhgRFa320Wj0ZCGlvp0/hSuoYkuxUcLBAeVVg4zQIIC6ClkDCMyF1rYXWsp+jqGmG2fdVyr\nrrrPHY/RDabohi0OFEltkTN5g2my9H/yT2YeafcJYwxtii6PudxIXdfFcrmUZ0m/crFYlMgWitl6\nvRbh1d/PPAqHvfHqMDFGKjAWs1wuo9Vq+Sy3w+GA2WyGu7s7cdksFgvr4YPatdHr9eQ0k0wmUS6X\n0W63feGNicSnFueDwUBC8Wq1moiaTaucF339fh/9fh+TyUSaOJZKJZycnMjc3W63SCQS8DwP3W5X\nMihNrrZEl5enHFe65lKplGyoDMXcbrcSGXR7eytupUqlgnq9/qzNwYro0oKkiGrRNRtQ6mOx53k+\nK0d/kbAmdBBPLbo69VZnR9Ey4obCBIogrmFNaFqPFE868DmmzDZiA0K9I7MbsE72CHIxhHURFCS6\nDH7nZstWM4zNZLuWINHl7+mxDGtcOQfoNqB/1HVdn+i2220xIphJR9GtVCpoNptYLBa+hps2wJt1\nRitQdGk5Usg4jqvVSkQ3l8uhVqvh5OTE1w4pbNGlMbNcLmVMB4OBiC4baZ6enoq7hHNzsVig1+tJ\nHPTZ2ZlsIjb9zwwTu7m5QbfblRBG3j3xFMNTBMf17u4O+/0elUoFZ2dnD6JZvoRQ3QuA31fKhUMf\nDS0dvtgATrcLp5DpdMIwod0LHES2e6Yw0J/D/k0UCu7OTLXk7butiWEe2WmJAZCeXTyK6cspLi5m\nKTGawKZfl7x48cTnz9RpHtfpX6arhhYb/ZHkq/tj2ToKMwabge/M6isWiz6h4i02+7iNRiM5dbDu\nhW5xHzZ4BNfRCtoaOzk5kTXEcQUg7ghtJPDUYdO9wAs0Risw67BWq+H09FRSlulH5Qkim83KiZdW\nsE1LlxFW3Mg2m40kQNVqNUnY4HejJUx/7qtXr7BarZ7dqDZ0n66+EeaRot1uS897x3F8/kUmG9Cp\nrTN7bNQ24PtpnsCn2gGNRkMyebjLkct6vUapVEIqlRKePHro2gZhgmPESxTGXRYKBTSbTRSLRbRa\nLTQaDfleyeSnDruFQkHqMHBMtdsmbOgNgiKVSCRQLBbRbreFa6vV8oVheZ4nvjMdosX0UBsbmvbX\nU6iAT+PaarWkAhotSMYVc/Niui1fbB9vCzr1m5XC6vU62u02Tk9PRchotAyHQ1/WH42EzWaDVCpl\nnSvvdHgaq9VqaLVaODk5wenpKQAIn1wuJ39nERxteNkMHdOuTY5ro9FAo9FAu91Gu932ufC0j1qf\nIJ8bTxy6e0ELRCqVQqlUQqvVQrPZRKPRQK1Wk4lsttvW4mAL5Ek/DcWBolssFmWD0EJGi4aTVr9s\nQV+kaSEjVx5xm82m8GQeOd0dUXHlaUGLUiKRkOfP43qz2fR1ep3NZr6AfYqxdtuEzds87XieJxeo\nzWbTJ7wU3FQqJZdYdIHwxa7LtmCKbjabheM4wpFHXJ5mUqmUXPhScClsttqa65MuNzKmzjuOI6J7\ndnYmbkWeHilkPO3y/5m1LcJG0GamBbfVasldBLM7V6sV+v2+zw3G0+5TYS0jjQ+Y4VcnJycivCw1\nVygUZELQ4owqC0VnztGHB0DEgUeLTCaDXC4n/maT53MH/Lkcg7gy5rJarYqQkWs+n5djL+Mi+R46\nfdUWVy2eHFeGVmnRBSDB5p7nSclHzdX2HNChWJlMRqIWTk5OfCcIji1PEUzk0XPVJlfNk5dn5XIZ\np6envuev70PIVfPTyQA2uXL9k2s2m8XJyYlwTaVSIq78HUbjRMWTn8voJHLNZDI+rtQpRgmNx2Nk\nMhms1+uvfv6hVhnT6Z3Ap5quhUJBRIyiyxRVxp0yXEeX+7MVcM730z6YQqEgu1y5XJYjRiKRQLVa\nRaPR8IU16VJ7mmvYx2BeculoD/pxyY2WLl05tVoNs9lMCkbTh6fjOW34yRgDyjqjAMRCSKfTqFQq\nMq6MGy2Xy6jVahKrrX9fn4LCHlfO1XQ6jWw2i1wuh2KxKBlGl5eXaDabKJVKImIMeaRlXKlUZH7r\n8ok2wMtSXvAwIebs7Ex4JhIJOfFwbnLzY81ari+bpR2ZUcZi/3yO5+fnaLVaUmCd84CnXLpuaFGa\n5T1tgFZsuVyWUxndYO12G7VaTYwuxuzytLNYLFCpVHwnh8jdC0F+TU5KOqaZxcNYzNVqhbu7OwCf\nbpLNGqs2FlxQrU7d7YCXPdVqVS54WLhDZytpITTDzMKCKbrJZFJ23VKpJGNZq9WEKy8HaE2w4hh/\n35aQadHluGSzWVQqFZTLZRnTarWKROJTQWgmbqTTabHkGPam+YY9rvzuFAhuAJVKBZVKBScnJ+Jq\nSiQSYqnrpI8oRZc+RYZU8bnTbUchAyARLLpGdLlc9omuDSHTUUa8OGfJRobfaa5Mgkin0xIhslgs\n5GRkM6yN4GZGoXccB/V6HfV6XVyhrILIC0HtYqpUKrJG/zSWLncN7sbcSfQlFFPwmAasRSFKS5dW\nGBcTJwcvzRiAzrheHXpjy9I1O0dQdHlqqFarPq4c12KxKKE7tOh0LKkNIdOdI3gBxhvrdruNSqUi\nkSDaCuOEZjLFt7B08/m8+EhbrZaIGktjMnpFd5Tg2GvRtRVtocWBAtZut+E4jrhEWNukVCohk8lI\niKHruiK6uttB2Fz1RqYja7j+ucGy2h2jRNLptERcuK7rKxDOtWVrXGnpcs3TR16r1WQT1nc4AHB6\neip1IpgG/lw3SOg+XS1AOvxCl21kix5mdPDFxAl9bLcF7b6g36ZarYoPij48TlBaELlcDtvt9oFV\nbtN60BYfLR4uelowPKZx3PkduNBMIQubrz7pcFHx+TNGk89fu2R4VObxTYuDLasMgC9hgwusWq3C\ncRwRWzNyguOuNzzdDomXiWEXwaHwM/3ccRypIMfjLf31tIoZtM+/M5qF38dW7V/WcaaFy0QHctUX\njpzPHFMmcRSLRZnTNkWXhf71uPK5auHnZ3NzPj8/F7fj19QJCVV0dZKA3p15mcbFqJ3PWnT1Tmxb\nyPTCpziYTf30JRQFV4uu7Q1CH9k4dhRdWo6mmwOA1A1gXKkuZG6LLz9bW9K0eMiV34E/z3GlVQR8\n7p1G0YvKp0fRZesYLbr8kxszj5487usQNMCO6DImV4su6xPorEj9ner1OvL5vFjDuk6ATdGl9ajH\n9DGujMKhVnCD0OvPBriZ1et137jy8/X9Eg0ChryyQuLXVMMLtXME3QumpXusgAkXHQVNpwjbEgdt\nPdIq0+JA36QJXcqPQmZajbaEjJuYPro9hSvFV4su38+mpcuLRnJlKmoQuJHR0tWbry1wrupwIC0Q\nGhSlw+Eg4043FEWX/mhbyScUXR576cdnoSOGLXHtaGOHokbRtR0+qEVf3+GQK+NauX5oiTMsUoue\n7cgQLbocL7oMgsDsPt6X6JrAz0G05fn/F8OmxRUjRoz/O0jYjoWLESNGjBifEVu6MWLEiBEhYtGN\nESNGjAgRi26MGDFiRIhYdGPEiBEjQoQZl3NgeTm+dJhVt9uVvvcs8dZutwN//kjsW1jhAwcAvs9l\neBN7ILGtdTqdliwVXZxnv9/7wrKi4MqQGsaQZrNZKRbd6XSQTqdlXMmVtT45pkdCYayMK8sIcpzY\n5oatbs7OznB2dibZXuzC8YXOtaFx1cWpd7udL4Hk5uYGNzc3uL29xeXlJS4vL3FxcSEFUpjco4Pn\njaD/UMdUl7tk6CCrnt3e3uLm5gaZTAYXFxe4uLhApVKR7ERW8zuW2ZcILyznADwsWMXwRHK9u7tD\nOp3G+fk5Li4upH1P0PM3Cx9lMplQufr+QXHWrYZSqZSE6BUKheeUJzjKNfTSjowpZdC47qTK1his\nmrVarXyB/AyIDoohDLtrAADJRmNRZd2ddDAYIJFISEV+Frfgi4HTNrnqEpeMe2Z3UrZF4eTgZ+52\nO6lCFjSuZrRKWMHxzMZiVhzHVbdjn06nUjCIGXTMX9dZgLqOMRB+jzRzXPlvrOPKlFQWAefGqpN4\n+F1tZUtpnox/14Xpd7sdptOppKUnk0kMBgMkk0l4nufL8uR7BHU5CQt8Xnp+6VR/jqnrulK1DQCq\n1eqDeaprGAP2wjV1zLLm7XmedDFOJBLSGIAxvBzXIH5P4WpFdLkTU3DZbmQwGEhnWBYPYe1aVvrR\neeF6IMIWXW4OLIFH0aXgcnNgRwMWNq/X69IfyeQYNrQ40LLSXNmVlBW6OK7MrHEcx8dVTy7+Gbbo\n6vRqXQeYojudTn0FtnWRETNjypzAtkSX9ZJZdIViNp/PhdN6vZZCKEzk4HjqRJsw50NQyxpdyGY6\nnUoLJ4oU2+BwTHO5XCBXW6Jr8mdhctd1pcYvrUo2hiRXbipmUSlbhW94cjGTWlgL5ubmBgCkjONu\ntxOd0tlqxFPHNPR2PZoQBZdlBmnp6p5fAKTeQRT1SYN46upcFLF+vy+twtl3Kp1OS3fVKOqoctHp\n2gssSq3LN45GI1/ZQXKt1WpiHduuU0rRpYWdyWTEbcDKXLR0uTmwjQy5ctHxZcsq47jqY7duC09x\noJhRHABI9xC6GeiaCKqy90ehO6hwDnDTJUdaurobMMeUlfKCOrKEDT2n+Ly0caUtXRa6Zx9FPn/W\nqaV1TK42LV2dJcfPoaXLXmjcrDgXeTLTKeLP4Wgv1xKfdoxerycN9Xq9nhStHo1GcqSo1+sPflcX\nurANWrh3d3fodrvo9XoYjUbYbDaYTqfIZrPSRr7Vagk/jSi5DgYD3N/fo9vtot/vYzgcYrvdCtfZ\nbCb1gclVT6qo+JIrx5Tjyq4i6XQas9nMN66aL/8eBTzPQ6/Xw93dHYbDoZTwc11XuCaTSUkTDtoM\nbBdoAj53sL2/v8dgMBCeLMSdSqUwmUyQy+WkuLn5ss2V779arTAcDuXZc66SazKZRKvVCnz+QZzD\nBtPVAUiX7/l8jpubG3Q6HVlX2k16OBykUt7XcrMqupzI79+/l6PweDz2WVyO4+Dly5ffTMSAzxP5\n48ePsjFMJhNf5X3P89BqtbBcLn2/G+XmAHzeIMh1MplId1iOq+u6aDQaePnypY8n8G3HlQXrF4uF\nHCFd1/WNq94goky9poHw/v17OQqzjQsv26rVKq6urny/F3V6uH7+w+FQrEf2FuPm22w2fc8/Kmih\n1FzZjn06nYqPlOUym82m7/nbFluCoptMJuWU2+l0cH19jW63i+FwKMVtJpMJlsslisUiTk9PxS33\nNZuYdUu32+3i999/l12ERwq2Z3/x4gVc130gBt/C0r2+vkav15Ndj+4R7nKvX7/2iW7Uggt8FrLr\n62v0+31pdUOui8UCnufh1atXDzaIqDnT0uWi47jqPz3PCxzXqEED4ffff/f1P6Nv1/M8XF5ewnVd\nH8+oNweO6fX1NYbDobibOKYUYfP5R8mVn0NL9/r6GoPBQJ43dYBjaz7/qKCbD7DL7/X1Na6vr9Hp\ndKRv22QyQTqdxnq9xtnZmVjqX4tQq4wRtLh4KdHv98X/lclkpMUy24pzl9HRAfSjhC0QJk8A0hF0\nOBzKRY++YeekZhHr6XT6pdCmUKCrjDHEiRcog8EAk8nE16qcFfhd1xX/KdsgMeKC7xv2uJolG/l8\nx+Mxut2u+J3pW6QF4Xme8J3NZr7QLX73sGGOK9vXTyYT9Ho9nw9c3z9oC1j7WW3VfdU8AUiUDdux\nsxU4/c5cT5rnfD73hTnpUoVhcg2y+Bhhc39/j/F4LM+fvl7Nl8+fHPV8temL1n7cTqeDX3/9Ff1+\nH8vlUrqUa+Hl6YIusq8psh96ux7dnpx97QeDgYSFMNQiSHTZBUHHk9oqQagvbChkHFAtUlx4nBwU\nMval0nU/w4YuK0gh0KI7m82EKwAZU05iuklMrjYsXR15wJtez/PkyKa56oVH0eXFUKFQkNJ+gB3R\n5QUqx0EvrF6vJ8KfTqd9oqtf+Xz+QehQ2EJmRpZo0R0MBphOp8JzvV5LF95CoSBjOp/PJXzMZlF4\nLTz8DDbxvL+/9z1/NoPk+qcxw3FlYX6+l03RJebzOe7v7/HLL79gPp9L+679fi+G4+Fw8Ikuv883\nE13TgqQAUCDY+oJ9p4IEAvi8eG20FDHflzzZhnk4HGK5XPpahhyzdHmLGfT9wwIXHa1ZjhkXHXtK\nUaBoPZqim0h86vNl8xKFz42+Wm3pdjodaeTHwH1t6XLjnc1mMq42j8HaguJLW7osql4oFB6ILo/v\n/M76vcLezLiYdaQMI1f6/T5c1xWeFDFuYnzN53MZU5uixXWlffK0dDudjvQUY9srhj2alm4ikZD+\namZyhE1QdH/99VfsdjtcXl7CcRwxugaDATabjU906Zp4LkIvYu55nhxt6cdjsfJyuYxms+kr+nw4\nHNDv9/HTTz/hxYsXvmgGWwuP4WyMHe12u5jNZpLxwyr95Ei3yHK5xO3tLQqFAq6urqTxoi3oG2su\n+l6vh9lsht1u9ySuxWIRV1dXUiw6Kq7T6VQsXHNcuYmwaPlisRCuFxcX0tDQJle6v2gRmnO1Uqmg\nVqs9CLXr9Xr46aefcHFxAeBTuKMtUdBHX25OnKsMVWOLG64l4FPPP45pqVTC+fm5dL6wCa4rvrrd\nrlxGplIpFAoF3/MHPnUK0c//8vJSiovbBmOIeafD0Dv2b3McB8ViUQIAstmscH379q30qntu94jQ\nHZKe56Hf7+Pu7g69Xk9iHTOZjLQ312mNWnRTqVRg+JgNLBYLDAYDdDoddDodTKdT7HY76XbAXU5n\n1SyXSwmYzmazEpIVNVcKGXu7cSLzxeOy5sr23FFy1ZsZu4jU6/UH8diLxQLX19cAPlmhjuNEwpUR\nCwy9Mw2EVqvl47nf72WuHg4HlMtlXFxcWLfEOKa9Xi9wI6vX677kBCZ73NzciM+Rfchsg1wZKqY3\nCAqZCXKlCywqDaAlztj8+XyO7XYrnUzq9bpcsDHqarlc4vr6Gvl8Hvv9XnrXPQfWRPfDhw/o9/si\nurQetKXLgPp+v4/RaIR6vR5ZmAsnx8ePH33iwKMlB5LHZUYz3N7eYrlcPgjJss2Vt8CaK1vHm1wZ\nzXBzc4PVaoVms4lXr15FxtUcV9Mqp59uv98/4Fqv1/HixYtIuAbNVQC+uUqetM56vZ502KXg2o4I\n4Zjy+buuKwZCkJDReru5uZEWOJeXl9b4mVyZzaUtXfb2cxzH5+Zg1I1+/lGtK4ouw8Pm8/mDDeJw\nOIjoag1IJBISPvZchJoGrB39TC5gkL5+Mdsok8n4boVnsxmWyyU2m82DEJew04AZDjQajXxZMY7j\nCE8dUsJBp/9pPp9LbKQtrszK0dEV5Oo4DhzHQavVQqvVkpjDXC73gCuzlNbr9QOuYacB073AJAha\n2SCJqtsAACAASURBVPV6Haenpzg9PZU6EporUy8Zx8mwHGb8AOGmAdPCHo/H6PV6WC6XwvXk5ATn\n5+e4vLyUTsWlUsnnf9a+PVuptXz+OgqEtQuY6n12dobLy0skk0mUSiWUSiV55txERqMR5vO5Lykh\nbP8u1xWzuW5ubjCdTpFKpdBqtaSL7sXFhbgaCoUCJpOJr84F19ZisbDGlXBdF/f393j79i1GoxFy\nuRxev36NRqOB09NTVCoVJJNJXF5eStIJLwf3+z3Oz88lw47z9ClcQ6+9oMVsvV6L6DabTfmTBVHy\n+Txub28lpdV1XQmcNgfcpugul0upJtRsNuXFlFYWObm9vZUslfl8LhuEDh0KE1p0udDJVQtuu932\ndQrmuI5GI7nB5gZhCkQUokueFF02JGTn39vbW0kPn81mIrpmG3YboktLh6LbarVwcnIiYkbBrVQq\n+Pjxo1wMcWyXy+WDUMewoEWXn8sMOcdx0G63ZXOgH7xSqaDb7eL6+lrEjBsb08O/5sb9S+C60pbu\nbDYT0W2327i4uBABKxaLKBaL0l17MBhgvV6LCC8WC1+6rQ1QdH/99Vd4nod8Po/Xr1+j2WyK6DIs\n1HEcieNmAtV3330novucyJBQay/Q0qWY0aIpFAo+S1d3YZ3NZtjv9yK6FDKzDXqYPIFPRSz05kDR\n1TxpjRUKBSQSCQlGZz0BcrUV3qRFl9EV/DxuEJzQPGoySmQ8HsvmQEuX48pNIkyYojscDrHb7ZDL\n5VAul3F2diaiywsgXpYwLpL1L7jxAp9rZIQJii5D2rrdroQ0lstlnJ6eipjpTsGTyQSbzUaOoxRd\n4PPmZaP2grZ06VZwHMe3OZB7pVJBIpFAt9sVi5Fra7Va+biGCa4rWrq3t7eSMttqtcTKpaVL0U0k\nEg+eP3XAdkjmfD6X2Nx8Pi+lUbn+GcXE1O9qtSqCyzAyuk8APHldhe7T1S2YeYQoFAq4uLhAq9US\nUaBVxoItk8kEjuNIVSTblxOpVEp4Hg4H4cn6uSzAwcsqABKju1gsHm3VHDZoxTLelhP25OREuNIq\nKBaLPj8UQ7V0QSGb4LMtl8tIJpMol8solUrC1XEcqWWQy+Ww2+2kcI8e1yi46rmqX+fn52g0GhJB\nwZ/jRWav14PjOMjn8z6etsRB8+SYVioVnJ2dod1uS3lEhoZtNhupdeC6rjx/DZtcOVez2axUEGP9\n7Gq1Kqm3mUwGu91O6kcwrMx8/jbj4Mm1Wq3i7OwML168gOM4KJVKUoiLYrrdbmWjY2t7cn0OrIou\n/Y48CjebTdk9SqUS1uu1iMNkMkG9XpeJbBuaZyaTER8ZXSCO44hDnb5QxujO53Of6EYlDnzILDNJ\nS5eVz0yuPKpRlKOAPsXoEw5dNqwmxktAADIHvhVXhjLydXp6imazKTHQ/BkW7hkMBjJXCZtzQItD\noVAQV93JyYlPdLnp7nY79Pt99Pt9zGYz30ZmG9qY4anh7OxMXEy1Wk3qbZvPfzabibETlQZwXBuN\nBs7OzvDq1asHtbP52u128n1oAX/NXA1ddOmr5e3v6ekpTk5OUK1WJThaB6Wblq6eyDahF5O2xGq1\nmgTx61KD6XRa4o+jnshayCqVioxpvV5HtVoV64Fc6fTnJsFFGZX1SEuXFz3n5+dwHEfGlcfL7XaL\nZDIpi246nUYquuZcvbi4EK71eh2lUgn5fF6iQnR4mSm6NqHnKi0yWuOO48jzLxQKvjDMfr+PQqHw\nTQyEUqmEer2Os7MzvHz5Uo7r+vnzAooaEMTVJl89rpprqVSSz+Z8ZiwuLd1MJvPVp91QkyOYTUJ/\nU7vdlpvrQqEgmSY6t523mpvNBmdnZ6hWq76c5rCPFny/fD6ParWKdruNUqkkPOkWYbYRedJqe/Hi\nBebzufyeTa70DzIW9/T0VKwyHn85pvR/Mwi+Xq9LVk273RarzWwzExbo12bcKI+KjUYDtVoNpVLJ\nl4pK31exWESr1cKrV68wn8/lAsO8RAsT/O7FYhHNZhPz+RwnJydyaiiVSr40VB4vHcfBixcvsNvt\n8PLlSzSbTUlZtZFBSZ6cn5eXlyiXy2i32zJXdfYeI1joenrz5g1c18XV1ZW47mxx5fuUSiW02228\nfv0a1WpVXEp0N+iIFHLl83ddF+fn56IX/HlbacCVSgWXl5dYLpcStcLLPYquLuuZy+VwdnaGv/3t\nb5jNZnj16hVqtdqzyzyGXnuBArFareRoyarwFDKd3lir1XBxcYFMJoNWq+Xz+dgIF+H75fN51Go1\nrFYr2ZX5sJnPricnJwcvC3n81CIWtkBQmDim6/VajkK0tHi7qh96Pp+X0DxOKLpRbI0rRYrB4pvN\nRrjWajWfOGmRKBaLaLfbkjbaaDTEMrc9rkyA2O/3MlfZbcMUXYZpvXz5UsSaosvxtFV7gZ+32+0C\n56qO8KHP/+TkBMlkUuYqu0jY6sTA9yyXyzg5OREe+vmTKzfdRCKBQqEgtXS1ZhSLRV/RKf0ZYYGi\nq10MNLgIzTWfz+P8/ByZTEa6nvCO4jnzNBGW+X74+xvpbgacHI9lbOiSj/riTX+Rv3+ZUJsSMhOF\nhXY4gMeqhjFigVkr5JnL5R4IWSKkVccx1XUUisWixBM/hetms5GLt3w+7xMRG1zp1hiPxxJgrrma\niQSs0eB5Hna7nRQ8Ya0IvZnYGFfyZfPBarV69PeYdLBcLn08zWNwWI0pyZNx7NPpFIVCwef+Mi+c\nEomEdBFZLpcypscak4Y1pqSrSzdSzHgiJEfz+TNBZrvd+kLJzNoLYTemZMcYszntMXFnISfd2YTf\nSVed+zvsN6Y0B1M/y2PP1fx5c5E99rt/lOtz/18Qt+e879fg2Dg8J271se8TJoI4PeXvT+Fjg+ux\nufrU348C5ufoMX6yVRVyjPNTPivovx97/lFyNPGcNc3sQ/Pfn/2ZUVwExYgRI0aMT7BX6y1GjBgx\nYjxALLoxYsSIESFi0Y0RI0aMCBGLbowYMWJEiDAz0o7eyOlaAOPx2JceTDzhNjDUcJFjYB+08XiM\nZDIpoUSsv/DEm+NQuK5WqwOAB40FCRbCYfNBhuccq2TPkJftdiuxj8ViMRSu0+n0AEBinHXvsL9/\nF+mAwPhcBsBrfvrvZihWOp0Ohet2uz0An5+lDhFiSxyGErHokQ4N4zjypXuq/R2hzlXdd1CHJrHd\n1Ha7leIwDLVkuBW/5yNxpKFy1dmmOpRKNwQA4Et+4c8fDodHE43CDG8DHs4xvbaP/fuXoH7OfsgY\nB1Nnm2mwNB37JbHqFQPR9SINCssIqzKS5smX/izXddHv99HpdJBIJOB5HtbrtWT/6GSEY1zDCuLW\nSSScsBzb/X4vPb16vR4ASPwuueoMJE5wnQ0WJnQcLvvK6QLgbFDa7/dlMyNXihrnwHMm+dfAfG9T\nRJnu2+v1UK1WJX6XGwUD9/Wi5HsA4c1VM6yNn7nZbKQMItN9AYiBwDFlQkoUoVhB4Z/kqps7kivH\nlUZClFxNaOEnVxYMAh6OK+fq1yL0erq6FY8eQHYFff/+vQgZM2z4MmN19eILayKzDBstPi4Ugj3T\nPn78CABSZpC5+MzHP8YTCF90taVDzqxB+uHDB7x//x6Hw0GKijDPvVqtSkqrzqyxkeVF0dWTd71e\ni0B0Oh18+PABHz58QCKRkDJ6LIJTrVYfWPS2FmCQ6LJD7Xq9xu3tLX7++Wf8+uuvUpODVbKY/s3x\npBDyPQB7optKpaTjynq9lu61v/zyCwBIvdrT01PU63UpLPMtRDeZTEqHGD7/n3/+GT/99BMA4PLy\nEpeXl1JDxOSqY2JtgpsDn992u0W328X333+PH374AQDw8uVLvHr1Cqenp9L54k8huhQvPSm0FahF\nl4ILQPohccB1brZeeH/kS36JJ5FIJGSX+/jxo+zUtC7Zdsast2BLJLTo7nY74cs/Kbo//vgjdrud\nVLJfLBZotVpy5ATgq09sYzLz+fDZstsvmxR2Oh28e/cOP/74IwDgxYsXctrZ7/dSLF6ntQL2k2Mo\nFuxQy3Ys33//Pf7rv/5LFhzbTjFtWXPUVnKYCLIedXfqTqeDH374Af/5n/8JAPinf/onrFYrOaaX\ny+VvmnDArs98/t9//z3+4z/+AwDw17/+FcvlUgo0sWyl6WKKUni58Xa7XfzP//wP/u3f/g0A8C//\n8i8+1w6ro30tQq+9wCIxrMzPV7/fx2AwwHg8lgVKqy2fz/sEQYuYLSHTPLnYlsullO4bjUbY7XZI\nJBIiIolEQuotBPG0aZnRRbDb7TCfz6VQOMs3sg+VnhiskmTDnWBCH7Xpb9StzcnT8zzs93sMh0Nk\ns1lp3dJoNKwVuHkKdxbQ1rVdmU49Go2kngULgZtJRaZv2BZPXXx/PB5LB1sei7vdLorFotSVMH9f\n87XJE4C0i2dpAHLd7XaYzWbodrtSOY91TYIQxZzg859OpxgMBpKWfjgcpLM1T7l/tHFm6KKrfYi8\nlOr3++h2u1IzlQWB5/M58vk82u22z58HPM95/RzoHHBWOloul5jP5+LLZa8uWmHL5RLb7VY6IOgC\nMzZTGE0h447seZ50XKU4bDYbzGYzJBIJ5HI5KTqii5wETeqweAdxBT43/2OXBVo/bOXCQke0eKI8\nXurxWC6XGI1GuL+/l87QvDzj3JhOp2JJ8nf5p82KePwcvTn0+31MJhPsdjsUCgXf6YeVvuhX1+9j\n22WjL6eWy6W0QxqPxw+4DodDH1fzmUflFiHX0WiEbreL0WiE/X6PSqUi1m+v15PqfZwDQd//KQhN\ndHW7ElqR2+0Wk8lEOoOORiOxyth+pt1uSy8tEzZFlyXbAAgvXvQNBgPMZjOxgDm5z87OsNvtHlQh\nsg1dTGe/34sIaNGlBca+dIvFQkRXw1bat76Q1IV4KLoULN64z2YzKTTCcommRR521a7HsFwuMR6P\ncXd35xNdjjets+Vy6RMWHuVtWLqmkNEAoAuMPAuFApLJpAhZLpfD5eXlA3Hgph3FZkauvECfTCZS\nKIpcB4MBcrkcrq6ufFyjOu3oZ8i2Rnd3d3LKrVQq4gLr9XrIZDI4Pz//w+MaasEb/Se/SLfbxbt3\n72TR5XI58fPsdju8efNGjpzavWALQe+9Wq0wHA7x4cMH6S3F7+F5nnQ1HY/HYq3ZupDSoI9QuzFW\nqxVGoxGur6/R6/WwWq2kmPZut8N0OkWxWJRqaEGXRtpSC/uCUvdg4w37/f09RqORVJFKJBJYr9dY\nLBbI5XKywdGdY55yKOhhcTUjVoBP1e663S5+//13eJ4nDRV5ueZ5HiaTifSbC7rotSW6jAjimmI7\n9tFoBODTvQjdY9PpFJlMBpPJRJpR0p9v030TZOmS68ePHzEejwEAjUZDuM5mM7HYNVfTJRaFGC8W\nC2k8Sa7NZhOLxQLz+RyTyQTpdFpcT+ys/DX3JKF3jtCYzWa4u7vDL7/8Ig+9VqtJS2j6evgltPUZ\nJTzPQ7fbxW+//SYCy7hccuSAe54nDR4BO03+CIru4XCQh6snh+u6yGaz0saHFrseUwqZDj/jpSCA\n0Lo0sJGk9iMvl0tZdK7rSkPNTCYjpwl25GBEi1m83IzVDQNBF1S6SSH7Y9XrdfR6PSwWC2kPPpvN\nRJT1fI3Cn0uru9vtyoV0pVJBu93GYrHA3d0dXNcFAGl/43mehDlFsba020Vz3Ww20jTA5Kpbr7Ok\nZxT3EBqe56HX6+Hdu3fYbrfS183zPFxfX0sDXa4xdiv+Gq5Wn4Lruri7u8Ovv/7qC2fiznZ/f4/h\ncChtjIGnd9QMExSyd+/eYbPZSD83ukhGoxEOh4M0pdRcbULfhvOzeCn5/v177Pd76V6azWbFZ55M\nJkV09/u9+HN5DGLIWZjQ3Xs1V4rubreTdkjpdFq66TLemKLL78rb76CY7z8KXRSb4s523G/fvsXr\n16/RaDRwfn4uN+9sKcWW9qy9StG2Wa1Puxfm8zl6vR7ev3+PbDYrQkbRYNdfLbqJRCK06J/n8CUn\nkyvnMK1btmqaz+cAwotU+hK0dapP5bw0PT09FZ2azWbiguDfAXzVRmYtTnez2WA8HmM4HKLf76NU\nKiGdTqNarUq1fV6mDYdD3N3d+XoomQhL4ILiiclzMBggmUz6KtdzAvACo9frodPpPMo1rGMQ34ci\nycy+4XCIXq+HdDotgqtvjDmmnU4Hd3d3YrmZ8cVhgu/Hm3Q2HR0MBuh0OmLl8vIMgLiZmOTR7XZ9\nPd9s+SD1uG42G3HLcFybzaa0umfEwHw+9/0Me/7RMtObQ1hzlc+Ul4+bzUbcHL1eD8ViUVxz3EzX\n6zW2261wHQ6HOBwOyGazcnqzAc2V659c+/0+isUiFovFA66bzUaiRobDIQAgl8tZ5UrouHde+g8G\nA5TLZTnR8mc2m43cRVAr2BD2ub3yQhddz/Pgui5c18VgMIDruhKzm8vlZFFRtBjk/f333+Pi4gIX\nFxeBcXBhTWRaj6xw77ouer0eJpOJdATIZDKSVECeiUQCruviw4cPKBaLOD8/RyKRCBzwsCx1vg/D\n7jzPQ7/fx2g0wmw2Qz6flwgLjdVqhW63i19++QXJZFKC5rnZ2fDt8cKOkSC0HMiXl3u0vvn99vs9\nxuOxjOvFxYX0zgLsxulS9D3Pk1MCfXiu64r1xcsUHcN9dnaGbDaLRqPh870C4Ysub9DJTXcwGQ6H\n6Ha7InK0MmkR393dIZFIoFQqhcLpS9hut9JdgynqDL9idABD8Xg3wnnd6XQkZjcK6FhyPnuO42Aw\nwM3Njfw3L7MZH12v16V3YqVSedbnWhFdWrdBoksR42uz2YjoMkPt7OwsLFoPoEWXlgBvgumn4aIn\n33K5LDGHHz9+FNGqVqtoNBoPPiMs0eXRRe+w/X5fBIJWmG5pAnwW3Z9//lliDWu1mi9hIuzjMEVX\nxxBTdBkaRBeCFt3dbieiyxRrxkHaOrpTFHUcqT6O8zto0V2v1xIH++HDB2SzWTSbTemyrP3kYflO\nzcQN1q7gpsAL4G63i/1+Hyi6tVpN+vtFAXLVgksx01wpunSF9ft93N/fo1QqRcrV8zzMZjNxGfCk\nMBwOcXNzI2NJY4X3P2xg22w2n/25oYkuJwh3rY8fP2I6neJwOPgs20qlgnq9jpOTEywWC2QyGYzH\nY6zXa1SrVVxcXPhuscMGeS4WCwyHQ1xfX2M4HMrNOjlyt2W3WPofO50ODocDHMfB5eXlg15JYYLi\nzYiFm5sbDIdDbDYb5HI5qQXA/lfValX4rtdr3N3dAfh0Y/zy5UvfLXDY/mgKDd0K19fXGAwGWK1W\ncgSjHxT4lHvfarWkNxatnEajgaurK6tc6eNeLpcYDoe4vb3FdDoF8KlZIZsTakOh2WxKa/v379/L\n89ebgi2/Lv2eg8FAQq94ImN4JgseNRoN2QQGg4EE89MNAdiLgQc+h96ZccQsCER3EZtWaq6Mg724\nuPA9f5tcaX2Tq07xZhaa3rQOh0/t7TOZjHB97riGnhzBG8u3b9/C8zw4joO//e1vePnyJVqtForF\nIk5PT6XoCaMDPnz4gJcvX0pMpM76ChP6yN7r9SRioVAo4LvvvhMHOlsr8wjBi5TxeIzNZoOXL1/K\nsemxykhhgDfrb9++xWQyQaFQwD/8wz+gVqvh6uoKzWZTduJqtSpWG6NHdDZQFFwZCcJGmuT64sUL\ntFotpNNpEYPpdCqNF6+vr2UORMF1Op3i5uYGP//8M1zXRbVaxT//8z+LO4ZJO+xYzfCxd+/e4ezs\nDG/evAm87AwL/N6z2Qy3t7f47bff0Ov1kMvl8ObNGxQKBZyenuL09BTpdBqtVgsXFxcSksUwvdPT\nU4mPtz2ms9kMNzc3ePfuHfr9PrLZLL777jvk83mcnp7i5OREwvHohqJRsd1ucXJygtlsFhnX29tb\nvH37Fr1eD9lsFq9fvxa3UbPZRDqdlueuXVGbzQbn5+dfNVdDF136PN69e4dsNotarYZ2u43z83O0\nWi3pDEqr9ocffhA/GW9fzbJwYSIoCoBB29999x2azSZOT09RrVaRzWYl177b7eLHH3/Ex48fxS1B\n0eX72opmoOi+e/cO6/UaxWIRb968kRMDj7kcU7oWmF1Frrwc0uNggytFd7Vaieg6jiNFY7LZLOr1\nOi4vL9Hv9/Hzzz/j7u5OrDluELbTgrnofvrpJwlnbDQaEr3SarVQq9UkIP7du3d4+/Yt3r17hzdv\n3mA2m/lC8mxd+Lmui5ubG/zwww/iAnvz5o2cGnmZShfHaDTC27dvcXd3h8FggNevX0uEkO3n77ou\nbm9v8eOPP2K5XMoGwRC8er2ObDYrtSrG4zHevn2L+/v7yLny+f/4449SxvPVq1col8tSBU2HVI7H\nY/zyyy+4ublBv9/HmzdvZDN7zlwNVXTpY2TQ88XFBZrNJs7Pz6V+brlc9jme+/0+fvnlF7iu6yuA\nYsvS5fttNhvJiiuVSqjVajg7O0Oj0YDjOKjVauKnTCQSKBQKuLu7E3+UyZU/FyZ4bNFZSMViUTaG\nRqMRODkqlQr6/b7E9a5WK7mJ5REo7Esfbj7k2u/3xed1cnKCRqMh5Rx1e/VyuSx+PvrVVquVJHbQ\n7weEm7LM4P3RaIS7uzucnZ3h/PwcZ2dn4g6rVqu+I+N8Psdvv/0maeI6ZttGbCk/V4feaeuW5QYZ\nRcEEjW63i263K35oZtKZMdu2ufJUy+pc5XJZyiPyZNbpdNDtdrFareR0xkQZGjK2kiPoYry5uUGx\nWMTZ2RnOzs6k5CS50jXS6XRwf38v40q/up6rT5kDocfp0jp0HAcnJye4urrC69evH9Qi5ev09BTn\n5+e4vLxEo9EQS9h2tlc2mxWxpdX18uVLOI4jPFnxiuFtp6enEl3hOI5EA9jyOzGWNpFICN9Go4HL\ny0u8fv0ajuPIuOrLm8PhgIuLC7x48QKTyUSsC4bz6PCm54a7HMNyuZTPzmQyYtlcXV3h1atXcBwH\npVJJxlWHbXEO8CY4nU7LotMiEWZGGn2LLCnIOcBjO1/62bbbbbGCGdLE5ANeUNqA9hkXCgWcnJzg\nzZs3Mgfp39XxzYyJp8HASBGb8cQmisXiUa58rvv9Hs1mE/V6XaKBdDEqm3zJIZVKyQWe1gD69qlH\nHNdWq4VUKiVaRnfoU7mGOksYhE0xa7fbuLq6wps3byR7hxlH/FOLbrPZ9ImyzXChTCaDYrEot/qX\nl5f47rvvJPaW/Pj3/X4v1lA+n5cHE6XolstlNJtNXF5e4h//8R8l0cAshwhARLdcLsNxHDnScSLT\nMg1bdFmmkZP46uoKf/nLX4QrxYHfiwkeDMGqVCrIZDI+Syfs4uDaD0vRdRwHFxcX+Mtf/iI8zSB9\nii7juJkAQMG1aSTwuRUKBbTbbXHZmM8/kfhUFa/ZbKLRaMidBEXDtpBpkOt3332Her3u48o1s91u\nRXTJ1RRdW5YuOfCyrN1u4+XLl6jX63I5rU/cu91ORBeAT3Sfs6FZsXR523tyciKLX2cXcUKn02nx\n9758+RLtdlvqatq8tSRPitjJyQnOz89xdXWFUqnkax3CiUKL7PLyUm5edbKBDWixoXXdbrdxcXGB\nly9fHo0P5AZB0W02m8jn8zL+OjstLOgsPd5Ck+urV6+Oct1sNjKuvFxjsofmGyb43ul0WqxrusFe\nvnz5IIGEn99qteS0U61Wkfl/7X1pdxvXkfbT2IEGGkBjJwnuspTYjp3xZOavJ+M4Jx/mnHyY8cQS\ntVhLRBILSexroxds7welyreboExZ3ZDfmX7O4ZHtI4MP6tatW7duLeEwNxjywpCJ/TEoAySdTqNY\nLKJardrGXYkwTRP5fB7FYhGBQIDLxL00uCJX521X5OrcLyJXSZL40N3G4RAMBhGLxSDLMu+t3d1d\nbqoudhMkroVCAaVSid+lwuHwB+uo6ylj1P7QNE3s7OxwYQF5KdRHAHhnHBRFwcHBAVarFfb396Eo\nim3DuZ2OJcwGQ7FYhGEYHG8kIYsxWjJO1ILw9PQU0+kUu7u7t5K43T6R6bqaTqc5PS2fz0NRFACw\nxehIXvT9MpkMDg4OkM/nUalUWEG8qkgjj5lCCpIkIZ/PI5VKcUWVWOJNXIPBIHK5HE5PT1Eul7G3\nt8eGlxTfq7i+qqo4OjoCABweHiKdTtsaL4k8SVdPTk4QCASwt7eH3d1dpFIp25UYcN8jy2azePDg\nAQBwjJRCXps8wVAohEqlgi+//BKTyQSHh4f82Oq1R57NZnF6eor1es1cKf1qk2ESuU6nUxz+swRb\nnPfmJdejoyOsVisUCgWUy2V+x6GHPvFBPxKJoFKp4PPPP8dkMuGMLMrtvy9XT4xupVLhtAsaw+I0\nnmTMFEXB/v4+X4PJ6JLyu33akVGi2FgoFOKTToyLOfmGw2EUCgWEQiGYpsmPGOL3d5srXW8zmQxW\nqxUSiQSHRADYYkliTwVJknisyGKx4HE4m76fWyCjq6oq54xS3jMZXTG0IE7iyOfzCIfDmM/nPI8q\nEonYYv9ugj4vm83i+PiY4/qi0QXA11/6URSFDwd6aKNwFMVMxc//WJA+qaqK09NTjiXT2tJUE2cD\nn3A4jHK5jEQiYZOpGJ/0CtlsFicnJ8hms+zt0k1RDG+IB8QmruK7jleHRCaT4Xiz+E4D/GR0iSPd\nNsrlMleC0iO2+Ih5H0huGYrFYrGm7AVxkioNSBTTakSvjDafWMoqBrjJM3JrEqxlWet//sk/oVCI\nuZLwROPg/HEmbtPfFzqPuaUlawAsT6rsE2VD4Q/qdyCOQgJgC5GQl+MwZK5zJb7i5gqHw7biCKpl\ndyaWO9sQOjada1ypmRHV3t91AxBHJNFDkNgXYFMYJBwOu8JztVrx5hQfHomzOKhU/DukF2LxhGjs\nHBkMrnBd//PLi/ZE3Nvin6JekDEjruIe23Douqqrzv1MoKo60zT5EKNbwl3vTR+iq962ydoAPKaC\nzQAAIABJREFUL682XuL/V94+vMWvVS9+rbx8uOjp+vDhw4ePn8fWPV0fPnz4+L8M3+j68OHDxxbh\nG10fPnz42CJ8o+vDhw8fW4SbFWlev8i5mi7iMXyu3uBXwfWux2cvUtvo9zlzcR2/72PwSWW6qRfx\ne3JzfxXrf0/cydU1o0u5oaJCUC4hNammjkLU4k1sLLFpJpK4EG6PCndWHYmt5qhLEwDujkbNrePx\n+K0Jus5N6HZyvAhRptSAudVqQZIkTvJ3cvWqCu3nOBNPkSvJldZfURTmStVAgLcpT5vkKhZBUDcp\nGstCP1TwsWmclPi5bnHfZJCc60/7SpIk5kkypekn28AmmVKDpeVyyTP7Wq0WADDXVCrFTZtoXzmr\n7LzSBVG+Ys0Acb25uQHwrjhFlOsmG0C4D1fXja6zmQUlGZ+fn+Px48c4OzvD8fEx/2SzWeRyOVsb\nRQC2hG7A/WYnYrEGzaCyLAvNZhNPnz7F06dPIUkSDg8PcXR0hEqlwtVWzkYoTk/EbaMrLuRyuYRh\nGDBNE41GA2dnZzg7OwMA5kotNamc0u3WiPeFOC+rXq8zV0mScHR0hOPjY250RGWWn4KnyFXXdbx+\n/Ro//PADnjx5guPjY5ycnODk5AT5fB6FQmGj0d3kiX4snIaMHBla/3q9jsePH+PJkyeQJAknJyc4\nPj7G3t4ed8LaltHdBBo+Sbr6+PFjPH78GABYrtSEn7huKuTwEmI1JxXCXF1d4e9//zt++OEHluvp\n6amN611G9z5wfUYa8FNvXXG209u3b/G3v/0N3333Hb755htomsbNIqhrFwAWtlcdkcTDgf4k5ZjN\nZri6usIPP/yAv/zlL5AkCV9//TXm8zkbaVmWbw3587oNnVjBQ1w1TUOj0cD333+P7777DgDw9ddf\nwzAM/vuJRIK5bnusPfCTIZtOp6jX6/j+++/x5z//GYFAAP/yL/9iq7Cj/qWfKqlf5PrmzRv853/+\nJ/7jP/4D//qv/4rJZMKVXXcNePSy4Q1gr0ijGWT1eh3//d//jW+//RaBQADffPMNLMviisUPHZjo\nNojrbDZDs9nE999/jz/96U+QJIm5UhUi9RNx7iVR992G+LvI8TIMA81mE//zP/+DP/7xj5AkCX/4\nwx+4ZN2NwZmuT44QPV3TNDEajdDv92GaJuLxODeV0HWdx4PTwETgJ+Uiw+22MovNbIjrfD7HZDLB\nYDDAdDrlWV10kNDVmAZpbtswiL9PbL5O04tLpRJ3b9M0DYPBAKqq2tojApsNg5ffhQb/0Qy8eDyO\nSqXCDYToe2SzWS7F/VSg5vu9Xg+r1QrpdJqb4CyXS/R6PeRyOViWdev/9aJrmwjx9keTdEmmsixj\nb28Pq9UK0WiUp3Crqsqd3z4VLMviNdZ1HYlEwsaVhsOqqspl48DtmLWXrR1FrjSOazabIR6Pc3fE\nSCSCyWTCgz4/Vq6uGd1N0xMMw8BoNEKr1eLRLTs7O4jH42x0c7kcTNO8dSX3SomdHcSAnzZct9uF\npmkIhULI5XIs3OFwiE6ng2KxeKfRdSqIG9j0e0Sjq+s6YrEYKpUK5vM5IpEIGzld13nqwqZrmleK\nLEI0urT+u7u73PyGDES5XOZGPZ8KNLmg1+thvV5zMxxqNtTr9XiqAWFTLN/r9adbzmAwgGVZSCaT\n2N/f5xaTmqah1+uxTnxKiPvKMAwkEgns7+9zHwtN09Dv93k8z6Y4rtc6QZ8/n88xHo/RarWgaRpk\nWcbBwQFzpcktpVJp48H7IXDd0xWNJU0xpdEhiUQClUoFwDuDfHV1hb29PRiGwYIWBe+10SUPhQxZ\nt9vFdDrlIX+6rmO9XmM4HCIajWJ/f58f4kSIiuGmkogc6U9x0xmGwd4jNRHfZHSd8LL02ylX0dOl\nQ5fkSpuOhvttG6KOkYHo9/s2o0u3rW63i8lkcueGE29obkE04sSDPF3R6FarVZ6qTAcyze7aFjbp\nKt0ge70edF2HLMuoVqswDIMP5MFgwNOrxVDCNg5g4hoIBHgET7vdhqZpSCQSODg44PFR5OmOx+Nf\nj6dLoCs5Gat6vY5nz55xN6FqtYp+v49er4d+v492u83XenGyhFeemFOJgZ8mmL58+ZJn3OdyOZ6h\n1O/3sVqt0O12+fohTpfwEqQY9ENcnz9/jtlshlAohEwmY+NKvYwHgwG3o9wGV8AeJxuPx2g0GsyV\nhj+Gw2HWAcuyUK1W3ytXL66VIk/S1cvLS5ydnbG8SqUSer0e6+rOzg4fEnetv5sxSKeuOtdf13WE\nw2FuL9ntdtHtdm0yvYurF0Ztk67S4EcaqJlMJm1cDcPA7u4uxuMxdF2/pateZ7FQ5gJNzn716hVM\n00QsFuMHU/LWLcvi0fIfYwNcO5ZFYVPqxXA4RK1Ww7Nnz9Dr9RCJRLC/v49EIgFd19FsNtFqtTAY\nDHgoIZ14zh+3eYopIjSK+8WLF2g0GjyWI5fLQZIkHl7Y6XQwGo1sA+m85LqJMxmyFy9eoFarcW9f\nRVGwXC55sjLJlQZ+ily9TCFzcqVD9/LyEoZhQFEU5trtdtFoNNButzEcDlmuYmtKryAaiNVqhcFg\ngMvLSzx58oRTsMrlMsLhMCaTCS4vL3F9fc1eJMl0W6l4BBpV//z5c1xcXGA2m/HAx8VigU6ng2az\niU6nw0ZX1FWv4Vz/ZrPJU7R1XUcymYQsy5jP52i322g0GryvaP9vkyvZADogXr16hXq9znHdeDyO\n+XyObreLq6srdryccv0Qvq42MXcaXtHoxmIxHB0dYW9vD41Gg41uu91mRSZX38s0FxKOmB0hjuJW\nFAWlUgn5fB7T6ZSNLgCbwIGfeoESvD6V6USmTacoCvL5PDdgXywWaLfbkCSJjS5xpZ7B24DzgHj2\n7BkURbFN6CADIUkSG11N0yBJ0la4Or3IwWCAi4sLnJ2d8Y2sVCrh/Pwc4/EYl5eXPCZ8Op0CwK3U\nwW2AxrE/e/YMqVQKqqpy1gcZB5LpaDSyrT99322kYZGukqebTCaZK/AunNPpdBAIBPjarus6ANwa\n8uh19oLo6b5+/ZoHwMbjcazX73qE93o95irKlWzAh3B0Pbwwn885N1ccqz6ZTNBut1Gr1TAYDLBY\nLLgDe7/fx8XFhW2mk9egnDyK5c1mM46X9no9NBoNmKbJhkCSJMxmM7RaLTQaDb62byrq8IIryVS8\nERDXZrMJwzAwm804W4G41ut1FItFHsTpdczMyXWTXOnfnVwbjQZP87irAMELrpQqZhgGx/ZarRYu\nLy9tumpZlk1XJUm6M4XMbZ5OXaV4Oa0/pWZRCpZTV4PBIE839prrXetPNxuRq3P9Kb9YnMTsta4a\nhsFc6aF0k1yJ683NDe8rml/4IXDd6JKAp9MpptMpdF3nl8F2uw1ZltHv97FYLNh17/V6uLi4gCRJ\nPFMN8PbBhwL5mqbdCm2QciyXS5tx0DQNNzc3UBSFcwu3cbWkDTadTpkrvfaSIaNHFMrRJEUmzzKd\nTn8yrpZlcUzcKddgMLhRrtsA6epkMmFdXSwWrKuJROKWrna7XZyfnwMAe5heX4VJpk5dpVQ2kqlz\n/X8tuvpzXDVNY10lp2sbYRviOplMbPuKQl/xeNzGNRQK8b4iuYr26r7wxNOlF2sx9jWZTNBqtRAI\nBNh7cBrdVCqFSqWyFaNLPEejke1EpqsElc+KxoEEHo/HoSjKJ+NKimyaJnq9Ho/h+Tmu28AmruRR\nOLk6vbJPwZVyXp23MorrDodDm672+32cn5/zANZtxB7FPbVJpjRiatP6JxIJKIqCcrnsOU+Rq3Nf\nUdodjWFycr25ueGZeuVyeSsHBDlezn1FBwR5t5scr1gs9ot11VWjK0kSptMprq6uUKvVoGkastks\nvvjiCxQKBRQKBR63PJvNOIazXC5Rq9VQLpehaZqnaWO0mHS61ut1DIdDyLKMBw8e8NRfuubous5K\nDoDjlOVyGbPZbCubbjqd4vr6mkMziUQCDx8+5NQ24kplrOQFU/yvUqlgNpvZZoE55eEFV5Lro0eP\nbnF1ynUymaBer6NUKkHTtPfOLXML9NBzeXkJTdOgqiq++uor1tVCoQBd11lXqXKJwgsHBwf8mLZp\nbpZboIyFer2Ofr9vW3/aUyRTCj3Q96vVaigWi9A07dakYy+wSVfFfUWhDifX0WiEi4sL5PN53lde\nF0dMp1Pc3NywrsbjcZycnLBcN3GlrBzS1dls9sFydc3o0i8UH6VM00Q2m8WXX36JTCbDTS7EBjON\nRgONRgPNZhNHR0f8oEaf6VXCORndN2/eYDKZQJZlfPbZZ4jH49yMhcqUxQyHRqMBTdNwdHTEubBe\nGwdS5FevXmE6nUKWZTx8+BCJRIJlSlzFrIFGo4HZbIajoyM2us7pul4Z3VevXkHTNKRSKfzmN7/h\naatOuY5GI+ZK48Ipb9frybViJsh8Pkcul+MHP/oRG8zUajVcXFygXq/j4OAAk8mEeQLelVqTI/Pi\nxQtO3H/06BE/+FCPDWrYQ6majUYD4/EYBwcHt9Z/W7qaSCTw2WefceUpjYIXudZqNTZ8BwcHNscL\n8O79gYzumzdvMB6P2eimUikUCgV+C6FBq6JcSVfJ6H5IfxPXjS4pyMuXL23ebSqVQiqVQjKZ5Mma\nNJr54uICl5eX6HQ6LHCRvBcJ53T9evPmDaLRKPL5PPb393m0ejKZRCwWY56tVgvj8RiTyQTj8Ri9\nXs8m8G14D69eveLR8cVikbs0UVcxket0OsXLly8xHA6Zq5iK5aWBIK6JRALlchmlUok7taVSKUSj\nUb5a3tzcYDKZ4MWLFxiNRlwVKHaD8wrkQf74448ol8v8Q2PAaRQ4Gf/lcom3b9/i4uICjx49wng8\nvsXTi+IYkacsy6hUKtyASRxZTwf/1dUVxuMxnj17ZpOpsxOgFxDXPxaLoVAo4ODggBswqarK08El\nSUKz2cRgMMBwOOTKT/EG6SVX0fGKRCJQVZWbBdEei0aj3Cmt2WxiNBpxOKLX6/ENAri/nXK14c16\nvWbPYLlcIhqNQlVVzs2lZjHimG1VVXlDRiIRNoiUdEypLm63dlwsFpjP55jP55BlGYqiYGdnB5lM\nhrnSSPZgMIjFYsFc1+s1e2uGYdhGnAPud5kSx7+Hw2Gk02mUy2Vks1k+IKLRKHOl3F3qFREOh7ma\nibh7BTEHOhQKIZlMolAocLoQyZU8LtM0kclkkE6nuSYfAF/bvTgcNuVWR6NRZDIZVCoVPhxSqZRt\nDDh56qQjpBd0I6PP9qI4goxUNBqFoigoFotQVRWKoiCVStnSlgzD4BsQAJapZVn899yWq8iV1j8S\nibBM8/k8FEXhAwIAZwTlcjnuNBeNRrFarWyFErSv3Aa1niQbkMlksLe3h0KhwOsciUT4VqbrOh8c\nkiSxvTJNkx3J+8jV9daO4nUsFoshl8uhWq3a+uaKMTC6ytNirFYrzGYzRCIRPr0B91s7iv1T6XWf\nvAfiSQoaCAQwn8+Z62KxQDgc5jZ7pERi0x834MwlJUWmhxFVVfmAELnqus5FCKQQlG9IebBe5j6S\nklK1FN12nFwlSYJhGBx6WiwWNqMbCARs3eu84Ep8Y7EYstksKpUKOweyLNtCR2JvXdHoktfutnfm\nDKtJkoRYLIZ0Oo1isYhcLsfd2cQ1NQyDjQMdZOL6e1mZ6NTVTCaDnZ0d5PN5lqnonOi6jlwuh0Kh\nAACIxWJsA2KxGOurV1zJVoXDYWSzWVSr1Vtc6fvcJVdKM/tVeLqxWAyqqqJarSIajfKPCPIeFUVh\no0uPFl4IXDwc6JQTjW4+n0csFmPPkWCaJnM1TZO5Us8DSinxAqL3QJ4uFXDEYjHE43EbV03T2NOd\nzWbslVuWdaugwwuuxFf0dKkPLYVBCLquI5vNIp1OwzRNvnrSunj9UOn0dMvlMvN05mCT9yMa3eVy\n6VkbUmdckzxBMrr5fJ55bpIpdRqLxWIAsPX1j0QiP7uvyHvM5/NsM8gGbOpd7SZoTzmNbi6XQyQS\nQTgcthlS0ejO53Ob0f0Qrq43vCkWi3j06BECgQBOT09RqVRY0LTxRU83l8vh0aNHAMBNrROJBHu6\nbj+k0ILn83k8fPgQkiShWCyiWq3yNQ14l/pCj2Sk7Lu7u/jqq68wGo1weHiIUqmERCKBcDj8wVUp\nH4JcLocHDx5gtVrZuJJ8qBSRuMbjcezt7eHrr7/GaDTC8fExisUid7yntB0voKoqHjx4gOVyyfG8\ndDrNxtTZRD4Wi9nkenx8jEKhwPF0Lx/ScrkcHj58COCd7lUqFSQSCTZgYpmvqKuSJOH4+BjlchmR\nSMTzvhaqquLk5ASr1Qr5fB7VapWdFLoNiNkeJNPf/e53rKvO9feS6+npKZbL5S1dlSSJby4i152d\nHXzxxReoVqvY39/nfeW1rtK+Wi6XKJVK2Nvb48MU+MmRpN9PNuBj5Sq5dTovl8s1AG5k0e12bcFz\nMS4pxnSpoUiv17ON8RH/DgAEg0FXJL9YLNYAuOFKr9dDMplkz4AOBzK4tKFM07Q1lCGvR1EUvl7S\nFdMtrut/Lg7x7Ha7kGWZ5SR6gnRtJK7094krjRvZ0KTD1blT4vo7ufIv3MC11+vdkqtXXEmunU6H\nudL6UxyUIK4t/V1RV7PZLN9yaP0DgYArPFerFesq/V5nxgqBZEpxcmrSI8qUGuN4KVPSu263a9tX\nFOIirmJMn/YivUUQV+e7jltcsUFXqUw5m83eKkEXQ2FkAyzL+sVydc3oroUPcjZWAcClgRTMF71D\nZxrTRqIuHXdOnsLnA4BtxBAA5kkKfZ9MBbe4inTF6yvJlaZIUK6jyFX8TuJ33fDK7qoii49TTq70\ncAnA1k1K5LQpjuk2VxKqyFX0aIknxftDodAtA3fX//tPrq6uvxheEveLGCIDwPIUeyg7dcDL9Xc+\nToocVqsVy9TJVcSm1EuvddXxJThMSp6uKM+fswH34epqytgvya3zOsd10+8DPu6VeVtc6Xe9x2B+\n0OdsEx/K9X2G121s0tX76uAmg+ClDjvX/0N+x3uMlyf42M8X//9PYQ/o3++jfx/DzzVP14cPHz58\n/Dy8e6Xw4cOHDx+34BtdHz58+NgifKPrw4cPH1uEb3R9+PDhY4twsyLN9iJ335fI+1byuJX7SPnE\nIq/7cBVTt34ObnHFP1NbnDw2ZYk4U4M2pW3d8d085/o+Hpvk+qm43vplv/yFeqs8gV8nVw/wv4Kr\nJ3WrpACUW7her3Fzc4NWq4VWq2VLRI9Go1weuE04U5SI52AwQLvd5ibWVFhATWWi0SjnbG4yHl5D\nzNkcjUZot9s8F42S5pPJJJcxivmlIkf6Z7f7RDj/G/GlDlLElRLLSa5U2eVM4RHhZhqR8/Np/Ver\nFcu03W6znlLSPHEVP+djUvk+hKszD3Y0GqHT6aDT6QDAnTLdBK+50j+TXIfDIbrdLs/FI66yLG/k\nuu0UR7F4izqziVyp+yBx/ZjyZNdbO4qguubFYoHLy0v8/e9/x+PHj3F6eso/JHyqD/camzYIlVEu\nFgu0Wi08fvwYT548AQCcnJzg5OQEOzs7PE5k09DEbSmJ2FCm0+ng7OwMZ2dnkCSJuYqdsjZx3Uaf\nAAIpcq/Xw9OnT/HkyRNI0rsyWiq9peY82xz0KOZjigfZYrFAvV7HkydPcHZ2hpOTEzx48ID7rCqK\nwp2wNhUBeAVnkcRqtUKn08HTp0/x9OlTlunR0RGvv6IoNkP2MbnpvwTivup0Onj27BmePXsGSZJw\ndHTEpdSkq171LrkvV7JV7XYbz58/x/PnzyFJEg4PD3F0dIRyuWzr6vZL4em3JKFbloWLiwv87W9/\nwx//+Ef8+7//OwzDgCzLWK/XWzO4wGbjSBUo8/mcje6f/vQnSJKEP/zhD1iv19wHYBsDE98H2nik\nyGdnZ/j2228RCAQwHA4RDAa5Jn/T0Eznld9NXsBPxkys2qL5aE+fPsWf//xnSJKEb775BpIk2bhu\nY8ink6/4J226RqOB//qv/8K3336Lf/u3f8NyuYSiKNwY564qQS+5irKkhlLdbhfPnj3Dd999h0Ag\ngNFoxE6BJEmIx+O8t0TO2zK8YuvEdruNp0+f4i9/+QuCwSBGoxHrqiRJ3LjpU0G0AcT1r3/9KwKB\nAH7/+99zQ5u79tWHwPXWjuKJr+s6xuMxN/1dr9dIJpO28eyhUAiKotzZwo+Uxa1TUGzkTVwNw+AG\n5VRXLfb1bLfb3LSF+um+j6tXvUoB8OTS8XjMDZ+pzJImIdBGo1aKVL4oYhsbT9d1HvpIjdUBMNdm\ns4l4PI5AIMB9gbdVneg8HGazGcbjMTeoNwzDNhPr9evXPCstn8/zZ4h/um2AN5VE05RdkulkMmFv\nst/vo16vsyEjD3LTLWQbhwVxHY/H6Ha7mE6nNq61Wo1vYs4J4L+kuvVjuY5GIxtXKq8W5UqDMz9m\neKpnRleS3g2fa7fbuLm5ga7rSKVSODo6QjKZhK7rqNVqSKVSKBaLt7raO70xt4wuCVKsp6ZR1q1W\nC8PhEOFwGJVKBfP5HJIkodfrQZZlbh6+qQO/yNXLLk66rqPT6eDm5gadTgfr9ZpbzVmWhWaziWAw\nyL2Ms9ks8/FywoXzc8mQtdttXF9fo9VqYblccj9iy7JwfX2NcDgMWZZRKBS2Mk5G5CeCdPX6+pq9\nsEKhAEmS0O128fLlS0QiEeRyuTvLsr00uvSZhmGg1+vh+voa7XYb8/mcm9Xruo56vY5AIABZllEs\nFrduvEQQ11arhW63i8VigWQyyQNBiWsikUCpVNoqt01cB4MBbm5u0Ov1uLG5yDUYDPJA0o+Ba0aX\nGlmInfan0yk6nQ5qtRob3ePjY6zXaza6xWKRT0DgttElpXHroW0Tz9lshm63i3q9jsFggFAohEql\nAsMwsF6veYppqVSCYRi29nTEVfzTy9jkbDZDp9PBxcUF2u02VqsVVFWFruswTRNXV1c85aJarfIh\n43Vd+6YDiAzZ27dvcXNzg8Viwf2IietqtUKhULg1TmabBoIchFarhbdv33KYhhprU4cvVVVxeHho\nu6KLM/y8fEwVb4+dTgeXl5dotVqYz+dIJpMwDAOz2Qz1ep1bgNJe27Y8CdSVq16vo9PpsNGlQY+1\nWo3bKlJf6k8F4tpoNNDtdjGfz5FIJKDrOjRNg2maWK/XKJfLH83V9Yc0cYFFA0G9U/f29riVG81G\nms1m3IH/Ph3HPgbiADkxvDAYDHjoZCAQQD6fh67r6Pf77PlMJhMeKb8Nrps2MXFtNpuYTCYIh8Mo\nl8vQdR2DwQCDwQCj0cg2vXRTJyWCV1dh4N2VbTAY4Pr6GpPJBJFIBDs7Ozz2muZiTadTmKbJPWG9\nlOld3OngrdVqWK/XUBQFyWSSZUrjz2mkOK093SK8zl6hz6d1bjabGI/HiEQi2Nvb2yhTwzC4cbnX\nQz43QTRko9GIuWqaxrPGxFHt1Ax8W1zFNdN1Hb1eD41GA8PhENFoFNVq1RZ2EnXgY7i6ZnTFERzi\ntZ1OZRq/nM/nYRgGWq0W+v2+zZBRuzdx9InbyryJJxmHZrPJjaJVVWXloGGZxJXmjtHG22bTIMuy\nMBqN0Gq1sF6veaw5DZ4cDAYwTROLxcL2wu58qXc7ZczZnBp4F8qZTqfodrssV+K6Wq3Q7/fZQ5/P\n5xxe2JTaRp/tNkgemqah1+uh2WyiWCzytIuLiwtYlsW9iU3ThK7rPBNL/M5u8xNTL2kNyeheX18D\nAE+tnc1muLi4wHg8hmEYMAwDuq7DMAxOHaSUvG15veS0NBoN5looFDCbzXB5ecmHrWEY0DQNmqZx\nSta2DwjiWq/XsV6vWQdErnSboJ9fOmjBdaPr/CLk6VI3+0qlgna7zcH08XgMXddto6y9FDg1UxYV\nz7IsVg4xFhqJRNBsNqFpGizLYsFv4rotw0sB/5ubG8iyjL29PfZ0hsMhfx+afOGE+AruJpwTUQOB\nACzLwmQyQafT4Ue9/f19aJqGwWDARoSMLt0gSJe8yLIQIcqC4vrNZpPHx3z++eewLItjp5ZlsTET\ne62K7wNecqXhiBR7JG/8+PgYs9kMk8kEtVqNDRkZXQA2rxzwPtsC+MnTbTabUBQFh4eHOD095St7\no9HgQ2w2m0HTNADwfKTQJlD8uV6vQ1EUHB0d4cGDB8y1VquxTDVN44nFv4Sra0aXBC0OphyNRuj3\n++h0OigWi+yakzLQS3y/30er1eJ8TXrR9GLD0WdSetByucR4PMZgMEC32+UR59PplJWBvFsxaXqb\nuaXEk7jSWHXDMPjKQ8pA4RGxGGEbeZC0iYnnarXCZDLBYDC4k+tsNgMAW+K8oiiQJMlWgOJVehul\nCNHhQDpAIaXJZAJN0zCdTqFpGsbjMfr9PtrtNq//Nop6xAbw0+mU138+n2M4HLJ3O51O+RZBMu12\nu7em8HrNlfYW7atOpwPLsjj0ZZomy3S5XDLXXq/HcwC3kUZ6F9f5fI7BYHBLriLXbreLTCaDUCj0\nwVxdf0gjQ0WeA220druNy8tLBINBXF1dYTweAwCnDv3444/Y2dnB7u4u5+8C7qdhWZYFAHxqkTcu\nxkKbzSbC4TDm8zmPEQmFQuj3+7i8vEQ8HsfOzg6CwSDi8fgto+C2p25Zlk2m/X4fg8EAk8kEsViM\ncyEvLy/R7/cRCoXQbDbx+vVrBINB7O7u8iuxVzFTCgtYlsU60Ol0mO9oNEI4HGav9vLyEoPBAMFg\nEDc3N3j79i2i0Sh2dnYQCoU41c3LvFLLsvigoritmMo4nU5xfn6ORqOB8XiMdruNer2OfD7PPDOZ\njOfZC/P5nJ0VioNS3DYSibBTcHFxgW63i2AwyFxlWcbOzg5isdhHpTndF6KukkzH4zFP96X1p4fg\nYDCITqeDq6sr5pdIJG6lkHnNtd/vs60yDAM//vijTVc7nQ5CoRA6nQ6azSZSqRRWqxXJpnSBAAAL\nv0lEQVTi8fgHy9V1o0vXXDqNyWPodDpsyLrdLuftTiYTztekPN5isQjAfr10y6Og13zyXMh7pVAH\nAB6vTpkLlmVhvX5XIky5hcFgEIqiQFXVW3FTt73fTZ7YcDjkU3o4HHLVV6/XQzQaxdXVFWRZ5utv\nJpPhFCjA/bQ2ul7P53NMJhOb99Lv99mj7Pf7HM8dDAaIRqNotVo4Pz/nuKM4p8zLclUyuqLBHY1G\nqNVq0DQNV1dXtkOj0+mg0WhwpRel49G6O0MsbnAEwOlg9KBDhpfCHZTFQt8jHo+z0U0kEohGo8jl\ncreq8AD35UthuOFwyHo6Ho9hWRZM00Sr1WJPfDAYIJFI2IxuIpFALpdzldP7uJKuircbCs9cX19j\nvV6zvIlrs9lEMplEPB7/RVxdDy9QzImS4SVJgqIoPCaaKtAoZhqJRDAej3F+fo5MJoPd3V3+PC8r\np+i62263MRqNsFqtuNqMksspL49idlRZFYlEOCXL67gj8C6OOxwOcXNzg9FohOVyiXg8zqOjAXBu\nJgAeDd7pdBCLxVAoFKDrOn+elyljYsxZ5EqzxigOSp5sKBTi6qp4PH6Lq5cQ46Okq6lUCrFYjKcs\nh8NhDiOFQiGMx2NcXFzw+m8DhmFwnw1RV2kYIhl7+m+RSIR1lYyYrutbeXfYpKvEi4a+AkA8Hock\nSVyE1O120Wg0oKoqp2p6/eBHNuB9XKmyj3Lfiassy8jlcsyVcB/Orj+k0XTPer3OOXi///3v+TWw\nWCzytV6MQ9IXn8/ntjQctxVFHLE+Go1wfX0Ny7Kgqio+//xzRKNRzrIIhUIce6ZAP+Wejsdj5up1\nniaFFer1OnRdRzabxRdffIFoNApVVZHL5RAMBm1cxWvTdDqFZVkbH8/c8njpszVN45xnXdehqiq+\n/PJLPqho4rL4wk6yJaNimubGbAg3Iebm/uMf/4BlWSiVSvjmm2+Qy+X4R3yQIpk2Gg3s7+9jOp3e\nGtPuNkfg3fpTDvF4PEY6ncbnn39+S6bkoYlcr66usL+/z49/Xj/4aZrGj+eapiGTyeC3v/0tF5ao\nqmrbV6IO1Go17O7u8qHrteGlNMHLy0tomoZ0Oo3f/OY3zJX2FWWtkFx1XUej0cDe3t4vkqtrRpey\nAsjoNhoNSJKEcrmMSqWCUqmEYrGIYrEIy7L45+XLl/jxxx/RarX4GuJlRRc9JtBD3/X1NUzTZOOV\nyWQ4vS0SiTDPbreLV69eod/vQ9M0TCYTzOfzrWQviDmki8UC2WwWhUIB2WyWZSpy7XQ6ePnyJV6+\nfIler4fJZMIhEidPt2RNnytyXS6XyOVyKJfLyGQyfPBSbNc0TbTbbdaBTqfDjxekyCLc3oDT6RQ3\nNzf4xz/+gXA4jFKphL29PVQqFdZbccNRw5Y3b95wqShlsniRW0rflw6HN2/ecB8IMgrlchnlcplj\nu3SFf/78OV68eMEPRLqu2yr+vMoQEtNELctCOp3mvbWzs4OdnR3mahgGbm5uuLnMYDDAZ599xl65\n156uqKs0/j2bzSKfz2N3dxe7u7uIRCJ86BLXFy9ecEjCeYPYqqcrPqRQHmmxWESpVEKpVGIvt1Ao\ncCxysVhgMpng/PycMxsood8r74GMDMUe2+02EomELTeT8kkjkQhnDlClCsWhdV3ntCyvuBLoetlq\ntZBMJlGpVNgwkHyj0aitYctgMMDr1685+8KyLPbKAPcNmBi2oatwKpXiR6dyucz6QAfEfD5HrVZD\nv9/Hy5cv+ZWYuIrjxN0ExTYpN/Pq6gq7u7sol8u82XZ3d7Gzs8OxaIr/vXnzhnO3KR8a8DbNkQpi\nrq+vkUqlbnHc3d1FNBrlA+Li4gKdTgfPnz/HeDy2cRXbZ3rFla7ssizzobC3t4dqtYpqtcpcDcPA\n+fk52u02ZwaIhTJel4SLoTAqRaaD9+DgAPv7+4hGo+yNE1dq/yjK9UMOXTebmGO9XmM+n3OyMzWH\nKJfLyGazSKfTSCQS3JpuuVwilUpBlmWOpVBaDMUAKRzglkdGpab0yj6dTrmnLxlb6kkaDoeZK7V0\nSyaTXI1CddnEkzi67amvVit+NJFlmWPim3qnUgyVOkxRfJrWheTqNkfR46eHH1mWEYlEkE6n+ZGE\nepFSPm4ikeCf2WzG8WjTNDmp3yuDRrmvdLtKJpPI5/NQFAWxWMwWOqLsD1mWkUqlEI1GWa4U//cK\nxJPymBOJBFRVRSaTQSKR4PWktU4kEkgmk0ilUjAMA5FIhB0iAJ7ypc5ipmkimUxyXw1VVSHLMhsn\n2teUqZDJZDCfzxGJRDgf2ev1p1Q80zQhyzI/4ufz+Vtc1+s1c02n07Asix/cScaiDXgfXG94Q1+C\nul+R0SWDRelglJRO/52M7mKxwHQ65cbmJHC3ja54OFA/XzK61PGKHn6oLJS46rrOyf+z2YwzK7xS\njtVqxXzFh0ixuTopxnq93mh0F4sFDMNgY+LVVVjkulqtEI1G2eiSEabDLBKJQJZl/tE0zWZ0gXfr\n7pWnI7YeDAaDbCDS6TR3P6OWnsFgkI0Z5eeS0aW/51VGgNjrl3huMrpkTOlwUBSFK9LI6DqLJNwG\n8bQsC5IkQZZlrvCUZdl24NMBkkwmkU6nYZomPwLStV000F5wJXtFXDcdEKQDZJhJrsRVLEC5D1dX\nsxfEmCH1Wkin0ygWi2xEnYnEiqIgm80il8txHil5kqIiuwV6oBFLYSORCFKpFAf6Y7EYGycCncaq\nqmKxWCAWi2G9XnMLQC+4iqEA2izRaBTJZJJvDvF4/FbXfVJkai5DMqfyZfGz3eYq9iSIRCJIJBJs\ndOPx+K3yWfIestksLMviV23i6mVsj4xUOBxmnqqqcpqVWOZNucMUT6eMBioE8TKmT/oVjUZZXqqq\n8vqLBwMA23dZLpecOkiFK15zpawKymGl2yPtKcpaAd5lMaTTaeTzeazXa85qsSzLlpnhBWhfOblm\ns1mbc0IOCsk1n89jtVqxXEVdvQ9cjekCQLFYxG9/+1uEw2GeuBCLxVgxnB26crkcHj16hEAggIOD\nA+zt7fEIDy+uFqSYhUIBjx49QjAYRLFYxMHBAU9aoGul+JhDZcxfffUVRqMR9vf3US6Xbd6bV8ZB\nVVV89tlnAIB8Po+DgwPu70sxOtE4UWMh4np4eIhSqcTXey/jj3dxJR1wdiOLx+M2rgcHBygWi3yY\neOmV5fN51oHDw0Ps7OywjDaVzObzeTx8+JD/fqVS4YPES56qquLBgwcA3u2X/f199rY3jTgiXf3d\n736H8XiM/f19luk2uebzeezv73M4ZlM8OR6PM9fRaIRqtcq6Go1GPeWay+VYVwuFAnOl9XdyJbl+\n+eWXGI/HqFarKBaLG3XmffDE6AaDQY7j0qlBD03OV+l8Po9AIIBisYh0Os2ziLx6ERaNLhlcWZaR\nyWTYeyEjJj6SkcATiQRM0+TSSrqGeNkZiZQjn88jHo/zzCbRgIpX23g8jmq1ylzT6TQymQznG3q9\n6USu9LtFpRS50gEhcqXYv9dc8/k8JElCsVjksVF3yUiSpFu6KnpvXoZBVFXF6ekpe+F0c7jLOJAh\ni8fjNpmKXL2CuP7E9T6GTNxXFP8nj9lrrnTLzmQyfEBsesDbJFexBuG+cpVcvGrc+UFkwOiHDJnY\nKOQeCruVSaDiIx+AWxx/TVw3dQx7H79Nay25ZCnWGz7c6dWK4adfmPHhuVzv2g/O7/Izf8dVnh+6\nR39tMnUR/yu4bqV/mtf5dj58uIX76Kqvzz4+Bm56uj58+PDh42ew3U7BPnz48PF/HL7R9eHDh48t\nwje6Pnz48LFF+EbXhw8fPrYI3+j68OHDxxbhG10fPnz42CJ8o+vDhw8fW4RvdH348OFji/CNrg8f\nPnxsEb7R9eHDh48twje6Pnz48LFF+EbXhw8fPrYI3+j68OHDxxbhG10fPnz42CJ8o+vDhw8fW4Rv\ndH348OFji/CNrg8fPnxsEb7R9eHDh48twje6Pnz48LFF+EbXhw8fPraI/wd7kU/lX7EGcAAAAABJ\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a02ec18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now lets draw the image being built up\n",
    "freqs = dct(dct(img, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "\n",
    "fig, axes = plt.subplots(8, 8)\n",
    "\n",
    "for (i, (x, y)) in enumerate(itertools.product(range(8), range(8))):\n",
    "    freq_select = np.zeros(8 * 8)\n",
    "    freq_select[:i+1] = 1\n",
    "    freq_select = freq_select.reshape((8, 8))\n",
    "    \n",
    "    new_freqs = np.multiply(freqs, freq_select)\n",
    "    \n",
    "    freq_img = idct(idct(new_freqs, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "    \n",
    "    ax = axes[x, y]\n",
    "    ax.imshow(freq_img, vmin=0, vmax=1)\n",
    "    ax.axis('off')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  0.,   1.,   5.,   6.],\n",
       "       [  2.,   4.,   7.,  12.],\n",
       "       [  3.,   8.,  11.,  13.],\n",
       "       [  9.,  10.,  14.,  15.]])"
      ]
     },
     "execution_count": 172,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Fill in a similar way to how jpegs do it?\n",
    "\n",
    "def loop_like_a_jpeg(size):\n",
    "    \"\"\"Generates a bunch of tuples that loop over a matrix in a zig-zag way\n",
    "    \"\"\"\n",
    "    flip_dir = False\n",
    "    for i in range(size):\n",
    "        r = range(i + 1)\n",
    "        if flip_dir:\n",
    "            r = reversed(r)\n",
    "        \n",
    "        for j in r:\n",
    "            # Start at the right edge (0, i), and go upwards to the right\n",
    "            yield (0 + j, i - j)\n",
    "        flip_dir = not flip_dir\n",
    "\n",
    "    for i in range(1, size):\n",
    "        r = range(size - i)\n",
    "        if flip_dir:\n",
    "            r = reversed(r)\n",
    "        \n",
    "        for j in r:\n",
    "            # Start the the bottom edge (i, size-1) and go upwards to the right\n",
    "            yield(i + j, (size - 1) - j)\n",
    "        flip_dir = not flip_dir\n",
    "\n",
    "arr = np.zeros((4, 4))\n",
    "for (i, (x, y)) in enumerate(loop_like_a_jpeg(4)):\n",
    "#     print(x, y)\n",
    "    arr[y, x] = i\n",
    "arr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saved to ../assets/img-buildup-0-0.png\n",
      "saved to ../assets/img-buildup-0-1.png\n",
      "saved to ../assets/img-buildup-1-0.png\n",
      "saved to ../assets/img-buildup-2-0.png\n",
      "saved to ../assets/img-buildup-1-1.png\n",
      "saved to ../assets/img-buildup-0-2.png\n",
      "saved to ../assets/img-buildup-0-3.png\n",
      "saved to ../assets/img-buildup-1-2.png\n",
      "saved to ../assets/img-buildup-2-1.png\n",
      "saved to ../assets/img-buildup-3-0.png\n",
      "saved to ../assets/img-buildup-4-0.png\n",
      "saved to ../assets/img-buildup-3-1.png\n",
      "saved to ../assets/img-buildup-2-2.png\n",
      "saved to ../assets/img-buildup-1-3.png\n",
      "saved to ../assets/img-buildup-0-4.png\n",
      "saved to ../assets/img-buildup-0-5.png\n",
      "saved to ../assets/img-buildup-1-4.png\n",
      "saved to ../assets/img-buildup-2-3.png\n",
      "saved to ../assets/img-buildup-3-2.png\n",
      "saved to ../assets/img-buildup-4-1.png\n",
      "saved to ../assets/img-buildup-5-0.png\n",
      "saved to ../assets/img-buildup-6-0.png\n",
      "saved to ../assets/img-buildup-5-1.png\n",
      "saved to ../assets/img-buildup-4-2.png\n",
      "saved to ../assets/img-buildup-3-3.png\n",
      "saved to ../assets/img-buildup-2-4.png\n",
      "saved to ../assets/img-buildup-1-5.png\n",
      "saved to ../assets/img-buildup-0-6.png\n",
      "saved to ../assets/img-buildup-0-7.png\n",
      "saved to ../assets/img-buildup-1-6.png\n",
      "saved to ../assets/img-buildup-2-5.png\n",
      "saved to ../assets/img-buildup-3-4.png\n",
      "saved to ../assets/img-buildup-4-3.png\n",
      "saved to ../assets/img-buildup-5-2.png\n",
      "saved to ../assets/img-buildup-6-1.png\n",
      "saved to ../assets/img-buildup-7-0.png\n",
      "saved to ../assets/img-buildup-7-1.png\n",
      "saved to ../assets/img-buildup-6-2.png\n",
      "saved to ../assets/img-buildup-5-3.png\n",
      "saved to ../assets/img-buildup-4-4.png\n",
      "saved to ../assets/img-buildup-3-5.png\n",
      "saved to ../assets/img-buildup-2-6.png\n",
      "saved to ../assets/img-buildup-1-7.png\n",
      "saved to ../assets/img-buildup-2-7.png\n",
      "saved to ../assets/img-buildup-3-6.png\n",
      "saved to ../assets/img-buildup-4-5.png\n",
      "saved to ../assets/img-buildup-5-4.png\n",
      "saved to ../assets/img-buildup-6-3.png\n",
      "saved to ../assets/img-buildup-7-2.png\n",
      "saved to ../assets/img-buildup-7-3.png\n",
      "saved to ../assets/img-buildup-6-4.png\n",
      "saved to ../assets/img-buildup-5-5.png\n",
      "saved to ../assets/img-buildup-4-6.png\n",
      "saved to ../assets/img-buildup-3-7.png\n",
      "saved to ../assets/img-buildup-4-7.png\n",
      "saved to ../assets/img-buildup-5-6.png\n",
      "saved to ../assets/img-buildup-6-5.png\n",
      "saved to ../assets/img-buildup-7-4.png\n",
      "saved to ../assets/img-buildup-7-5.png\n",
      "saved to ../assets/img-buildup-6-6.png\n",
      "saved to ../assets/img-buildup-5-7.png\n",
      "saved to ../assets/img-buildup-6-7.png\n",
      "saved to ../assets/img-buildup-7-6.png\n",
      "saved to ../assets/img-buildup-7-7.png\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11565c3c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "freqs = dct(dct(img, axis=0, norm='ortho'), axis=1, norm='ortho')\n",
    "\n",
    "fig, axes = plt.subplots(8, 8)\n",
    "\n",
    "freq_select = np.zeros((8, 8))\n",
    "for (y, x) in loop_like_a_jpeg(8):\n",
    "    freq_select[x, y] = 1;\n",
    "    \n",
    "    new_freqs = np.multiply(freqs, freq_select)\n",
    "    \n",
    "    freq_img = np.copy(idct(idct(new_freqs, axis=0, norm='ortho'), axis=1, norm='ortho'))\n",
    "    \n",
    "    ax = axes[x, y]\n",
    "    ax.imshow(freq_img, vmin=0, vmax=1)\n",
    "    ax.axis('off')\n",
    "    save_image(freq_img, name='../assets/img-buildup-{}-{}.png'.format(x, y), vmin=0, vmax=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
